Added path declarations to require.config...

... In all the adapters. This is used by the upcoming devicedetect plugin so that require can load it correctly. devicedetect is the actual plugin, runtime is a lib loaded by the plugin which provides insight about the app's runtime. runtime's path is swapped at optimization so it points to a simple JSON instead.
Added devicedetect lib...

The point is to let the developper define multiple implementations of a class for a panel of devices. The plugin lets the dev require a file and will load the correct ones according to tests designed by the dev. These tests/mappings will be covered in another commit (namely on the boilerplate project.)

devicedetect provides a runtime object to the dev for him to run tests. It does so by parsing the client's UA using UAparser (hence its inclusion) when it is run unoptimized. Otherwise, UAParser is still used in nodejs to - if necessary - parse a UA string that has been provided as a CLI argument to the optimizer script.

This is necessary since we can't fully rely on the adapter variable anymore - we seek to handle multiple formfactors, os or constructor which gets a tad complicated.
Added commander as a dependency
Added commander support. This allows for CLI options...

Which enables us to specify options in whichever order we want and be a little more explicit about it. Retro compatibility tests remain to be done for this version.

Also added support for several new options which allow the user to specify a device, formfactor, etc. without having to specify a complete user agent.