Verify API in AMD context

#### WORK IN PROGRESS, BREAKS BUILT VERSION, DO NOT MERGE!

---

This pull requests verifies that the API works in AMD contexts by loading SinonJS using RequireJS.

It currently breaks the built version, as `lib/sinon.js` no longer declares a global variable and only assigns to `global.sinon` if it is falsy. This is needed in order to separate the target Sinon from the BusterJS provided Sinon.
This also means that we can use unmodified BusterJS for the tests :clap: 

The build script needs fixing, input welcome! 

I just need a break and could with some feedback on this pull request before spending too much time down the wrong path.