Merged AMD/CommonJS dispatch to use sync `require`

Merged AMD/CommonJS dispatch to both use the synchronous form of `require`.

Using the synchronous `require` is the standard for CommonJS but atypical for AMD. However, [AMD also supports this form of `require`](https://github.com/amdjs/amdjs-api/wiki/require#requirestring-) so long as the module has already been loaded once before — which, in our case, is when the library is defined —, otherwise it will throw an `Error`.

Fixes #298.