MGSLayer code overhaul & cleanup

* Code cleanup of MGSLayer with minor API changes: NSOrderedSet is now used instead of NSArray
* Significant cleanup to the delegation/KVO code paths.
* Many of the moving parts have been removed or simplified

Signed-off-by: Blake Skinner <bskinner@mit.edu>