Split "anylytics" part from the "generation" part.

This way we can convert commonjs modules into different kinds of target
outputs, like browser, AMD, Qt, ES6 modules etc.

Everything is a bit broken now, like watch, source-maps, compress, pipe
and so on.

I'm also using esprima / escodegen now, the AST is like a 1000 times easier
to work it, it just works, instead of other Walker.Transform stuff ujs uses.

Only thing is that their source-map support isn't that great, but that should 
be fixed soon.

I added also Qt as ouput, yesterday I did some experimenting with it, with
including prime in a QML app, and the importing is slightly different, 
because I couldn't find a global scope, so the nicest way is to have named
modules as "var name = require('...')" or something.

Basically, this commit is a start, but still needs some drastic cleaning up and
reintroducing of existing features.
Now we're able to write CommonJS modules to AMD modules with wrapup!

Needs some testing obviously, the output folder isn't nicely configurable yet
either.

What's really nice is that it puts the dependencies in the AMD dependency array
and in the function parameters, and that it replaces the require('..') calls
with the actual parameters, that are added to the function.

For example the output of:

	var a = require("./e")

Is:

	define([
		'module',
		'exports',
		'./e'
	], function (module, exports, _0) {
		var a = _0;
	});
Everything is starting to work again, more or less.
A require() can also be a "NewExpression", besides a "CallExpression"
Ignore unresolved dependencies in the graph output
Ignore some tests now (sourcemaps, exclude), because they are not implemented yet
Rename browser includes
Compress option in the browser output uses esmangle now.

Works really nice with escodegen / esprima. Maybe uglify could squeeze a bit
bit more, but then just pipe the results through uglify or whatever.
WrapUp can now output AST JSON structures, which could be consumed by other tools, like uglifyjs with its --spidermonkey option.
Prevent duplicates in the AMD dependency array
Sourcemaps are working again, basically.
Test sourcemaps too, and fix sourcemapURL option
Skip incorrect modules (modules that can't be resolved) in the AMD output
Make output option really required for AMD.
Merge qt and browser, they're almost the same. 

Now added --globalize-vars option, to use var ... = require() instead of the 
window[...] = require().
Remove unnecessary parenthesis.
Remove exclude method.

Better use something like https://github.com/arian/envarconst
When watching, only rebuild once when multiple files change instantly.
Fix bug where AMD files would be placed outside the output directory.

If the required files are higher in the directory tree, the file ended up in a
parent directory of the output directory, which is bad. Now it is renaming
files so everything is placed nicely in the output directory.
Remove excludes tests