Fixes multiple named defines in a single bundle, adds a normalize hook, uses QUnit for testing.

## Named defines in a single bundle

If you have multiple named defines in a single package, this commit should properly register them to `System.defined`.

If multiple anonymous defines are in a single file, it will throw a warning like:

"system.js - multiple anonymous defines for [MODULE-NAME] module";

## Normalize Hook

A format can provide a normalize hook that adds custom behavior when the referrer is a module of that type.  This looks like:

```js
System.format.special = {
  normalize:  function(name, referrer, referrerAddress, baseNormalize ) {
    return moduleName
  }
};
```

I provide `baseNormalize` so people can easily call it after making modifications to `name`.

## QUnit for testing.

I switched to using QUnit.  This allows running a single test, makes it easier to author more complex tests, and will make it easier to run in a CI setup.