Making amdefine self-contained so easily embeddad.

Node's require caches module, so calling require()
multiple times comes with little cost.
Also 'use strict'; is present in the body of the function.

This form of the function allows to easily embed amdefine
programmatically by just including its string representation.