Added a BaseView to use for inheriting off of in the future.

I have some comments within this view to describe its purposes.  We aren't quite
yet ready to use this view yet, as there are some manual optimizations I'm going to do still
over the weekend.  But afterwards we very much will.
Massive commit for refactoring.

This commit includes numerous refactorings that revolve around the same topic:
Cleaning up and unbinding of view/model/collection states.  This introduces the concept
and purposefully uses it to clear up the issue from happening in a few places we were
seeing it.  This concept has not been 100% implemented across the entire system as of yet,
as there are some gotcha's still with the implementation, for which I am making a BaseView
(checked in previously) to solve.  So I am doing this slowly to implement a management solution
for view states and model/collection states in the future.

Any questions, please comment on git commit line (in code).
Merge branch 'sprint3' of github.com:Innovation-Toolkit/midas into sprint3