[WIP] Unit tests for Location classes + bug fixes

Adding some long overdue coverage to the `Location` classes. **This is still a work in progress.** Submitting so people can track, make comments/suggestions, remind me to finish this, etc. Feel free to tear me a new one.

You'll notice that as I'm writing tests, some source changes are happening due to tests revealing bugs, unintended possible consequences or just because *I felt like it*.

Coverage should eventually include `Ember.Location`, `Ember.AutoLocation`, `Ember.HistoryLocation`, `Ember.HashLocation`, `Ember.NoneLocation`.

![Under Construction Image](http://www.netanimations.net/fire-under-construction-animation.gif)
@jayphelps Nice work! Thanks for this :)