fixes #8 by implementing the `origin` property

I've implemented the `origin` property, per my reading of the specifications and double-checking this against what has been implemented in Chrome.

I have not written tests for this, as the current tests are a little confusing. I'm willing to go back and do this if you feel this is a strict requirement.
Maybe use a switch?