stopPropagation added to event handlers to abort queue.

Reason for adding: to permit instance.xhr errors to go silent when we want to retry the xhr and complete the Promise thereafter.
Resolves autosort menu handling for children items.
Call event handlers passing the function into 'this'.

This allows an event to deregister itself from the event queue by calling app['core.events'].remove(this), which is rather nice.
Added a polyfill for ES7 Object.observe. I've been playing with it and it works reasonably well.

It could cut down on event listeners, although it's not as clean when it comes to gc.
core.mvc major update

1. better async handling of errors
2. introduces a delayed removal of DOM elements for animation purposes
3. createAppend now accepts a function as a forth argument which sets this to the element and can be used to set everything about the element rather than having to do it via variables. This greatly encapsulates the code.
instance.amd

1. Fixes race condition which could lead to app unable to load if modules loaded within minimal time.
2. Fixes css/js requires order.
3. Adds Promise module support - if a module provides a Promise as its return the amd loader will wait until it is resolved. This allows the module to do async stuff like fetching api data before the module is marked as loaded and available for use.