Removed need for view snapshot and converted to a UIWindow based layout

This is a fairly large change in direction for the codebase. I don't really expect it to be merged, but I thought someone might be interested in the changes. 

Basically, I have removed the need for a snapshot of the view and I am animating the target view's layer instead. The layer is set to rasterise before animating and this is reversed after the semimodal is dismissed.

I have also shifted the code to use UIWindows for layout and layering as I believe this is a simpler and more robust solution.