implement streaming responses
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
various cleanups
pumpStreamOnce -> pumpStreamInternal
pass an Error to reject(), and reject in the unknown case too
Merge pull request #81 from dwrensha/streaming

implement streaming responses ♫♫
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.
only stream response when status code is 2XX
Merge pull request #103 from dwrensha/streaming

only stream response when status code is 2XX
Initial version of Dockerfile

This requires Docker v1.1+, available by running
`curl -sL https://get.docker.io/ | sh`