swiftで書かれた以下のclassファイルのソースがあります。

// レイヤーをAVPlayerLayerにする為のラッパークラス.
class AVPlayerView : UIView{
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override init(frame: CGRect) {
        super.init(frame: frame)! // ・・・(1)
    }

    override class func layerClass() -> AnyClass{ // ・・・(2)
        return AVPlayerLayer.self                 // ・・・(2)
    }
}

(1) !のForced Unwrappingを付けないと

[パス]: A non-failable initializer cannot chain to failable initializer
'init(coder:)' written with 'init?'

のエラーが発生します。これはどういった意味で、なぜ「!」が必要なのでしょう?

(2) のlayerClass()をoverrideしていますが、
 (2-1) 返り値が AnyClassとは?
 (2-2) AVPlayerLayer.selfとは?
全く見慣れないコードでどのような理解をすればいいのかわかりません。

参考になるページURLでもかまいません。ご教授のほどいただけると幸いです。