Initial version for code review

Because the initial development was occurring on master, there isn't an easy way to do code review. This pull exists solely as a means to code review the entire project. Any changes will be put straight into master and this pull will be closed and the `initial-code-review` branch deleted. All future development will use pull requests into master to facilitate code review.
The problem is that we don't know what the current scopes are and much less can get a list of them in the current process. I think 4 billion possibilities will be enough to avoid overlaps.

My only concern would be having `microtime()` return the same value but that's probably very unlikely. I added the scope name into the hash just because: f51d23bdeffab3ee949cc27e7d9daa4f235b615b.