Refs #581. Invert child view registration behavior

Instead of making the parent view register the child views it
creates, we instead have child views attach themselves to the
parent when they are constructed. This behavior is modeled after
Qt, and allows us to issue console warnings when developers
forget to pass the parent view, so potential memory leaks will
be easy to spot.
Memory mgmt for top level views
Refactor layout views
Refactor the resource listing body views
More view refactoring
More refactoring
Automatically call unregister from parent view when child is destroyed
Ensure modal views also get cleaned up with destroy()
Last bit of core cleanup
Refactor plugins to use new memory management system
Fixes #581. Document cleanup conventions
Fix the web client tests
Fix routing test

This required reintroduction of our forcing the modal backdrop to
be removed since the modal backdrop likes to stick around on
phantomjs.
Properly destroy modals if they are open

This was the reason our backdrops were piling up
Restore old waitForLoad conditions
Fix modal cleanup
jshint
Adjust the waitForLoad test to the new conditions.

I also added a bit more description to the jasmine logs so that when a failure occurs it is easier to find what caused it.
consistent ordering
Merge pull request #586 from girder/better-memory-management

Better memory management