Use closer approximation of backbone best practices

This is a closer approximation to the backbone best practices. There is still some cleanup that can be done (specifically around the SearchResults collection and tabs interaction) but this is more in line with what an experienced Backbone-er would write.

Also, still needs tests (though you may notice that this implementation is significantly easier to test)