AngleGradientView supports and extends AngleGradientLayer

A few things to note:
* The AngleGradientLayer is added as a subview of view.layer in order to decouple the relationship of the view to it's main layer.  For example, the AngleGradientView can be rotated independently of the view itself, allowing for more effects.
* A layer mask and bezier path(s) works great for creating oval or arc, or other arbitrarily shaped gradient layers.
* An outline layer allows for complex borders.
* Nothing has really changed inside AngleGradientLayer.