Added 404 page for non-existent/invalid routes. Fix for route resolves.
* Creating the 404 page exposed the fact that we were using resolves
  incorrectly. Resolves should bring back the data or throw an error
  prior to the controller loading. Previously we were loading the query
  promise in our resolves and then querying in the controller. This is
  incorrect because a $stateChangeError isn't triggered by a bad resolve
  since we were running the query in our controllers and not directly
  in the resolves. All resolves now return data or an error, controllers
  have been updated to reflect this change.
* All non-existent routes now redirect to 404. All state changes with
  invalid resolves now redirect to 404.
* Currently redirection doesn't physically redirect, but instead loads
  a 404 state, this allows the url to remain the same while displaying
  the 404 state.