Rewrites View with functional dependencies.
Uses functional dependencies to use more general View typeclass :)
Removes pointless class constraints.
Fleshes out IndexedContainer typeclass.
Reformats the template haskell.  Might revert later.
Adds IndexedContainer instances to Locations.