Allow linking to locations within grains

This works by adding a query parameter `location` to grain URLs
Add message handler to allow setting location in url from child iframe
Fix according to Kenton's code review

* All references of `location` changed to `path`
* Path is now part of the URL, instead of a query parameter
* Fix up origin checking in message handler
* Change message handler to run on Meteor.startup
* Use replaceState instead of pushState for path changes
Change error code to 400 for invalid location being supplied
Merge pull request #85 from jparyani/grain-links

Allow linking to locations within grains
Fix error reporting for invalid paths
Actually, let's just have the postMessage format be {'setPath': '/whatever'}.
Merge pull request #88 from jparyani/grain-links

Fix error reporting for invalid paths
Fix grainLog route from conflicting with grain path. Fixes #99
Merge pull request #101 from jparyani/grain-links

Fix grainLog route from conflicting with grain path. Fixes #99
Fix cases where profile.name is missing.

For now, fallback to service specific identifiers
Merge pull request #102 from jparyani/fix-username

Fix cases where profile.name is missing.