update with umd pattern

A more robust module pattern to expose Lenses via
either AMD, Node (commonjs-like), or window (no module)

Following github.com/umdjs/umd pattern