Initial attempt at AMD support

This is my initial attempt at AMD support for issue #66, with supporting tests. I've made some compromises to make the diff smaller. Ideally, the source files should be renamed to match the module name (ie Base64.js instead of base64.js) so that you don't need the path mapping in requirejs.config. I've also added an example using AMD.

I will squash the commits before merging once getting some feedback.