For AMD modules - pass in require, use anonymous defines

To use the `require` call you should really pass it in explicitly I believe.

This may work as it is using require.js, but the module loader I use (curl.js) requires you to be explicit. To stop it interfering with node/commonjs then it's passed in as `_require` and only set to `require` if it has actually been passed in.

I don't think there is any need to name the AMD modules either. Generally the name of the module is defined by its filename/location so there is no need. It also breaks in some require optimisers if you have named modules!