Add v. basic raw pushState routing.

This isn't very nice and surely fails to handle some edge cases, but it should be adequate. Does not handle updating the share params.