DO NOT MERGE: Issue 2106: Live Preview Snapshot

This is a PR for issue #2106.
Awesome! 

Personally speaking, i always try to keep the number of checks as minimum as possible (say, validate only what's needed!). Checking for the window doesn't hurt, but same as above, unless we have an identified workflow that could lead to a missing window, i would just skip that check. Otherwise, we'd need to add the same check in every other single UIView sucblass.

Sidenote: `NSAssert` || `NSParameterAssert` are awesome for parameter validation, in debug mode.