Optional externals in amd use globals instead of an explicit dependency

There isn't any mechanism in the amdjs spec to provide optional
dependancies (although a requirejs loader plugin could do that, it's not
standard). The best approach found was knockout's optional dependancy on
jquery, for which it doesn't use require, it only uses globals.

This solution will need to be improved for use of requirejs/amd in
commonjs environments, and could be toggled with a flag.
add 'umd2' libraryTarget for optional amd dependancies as globals
Update ExternalModule.js for umd2
fix module.hot.data
fix this.applyPluginsWaterfall("module-obj", .. call in MainTemplate.js
Merge pull request #404 from undoZen/module-hot-data

fix module.hot.data
add hot self accept with error handler
fixed hot error handler test case
added option for devtools

`output.devtool[Fallback]ModuleFilenameTemplate` option
fixes #405
1.3.3-beta2
Add logging about downloading the hot manifest
Fix #412 - Support for holes inside Arrays

An array with a hole such as `[,'foo']` is parsed by Esprima as null.
Skip its evaluation.

Reference: https://code.google.com/p/esprima/issues/detail?id=525#c18
```
According to
https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API#Expressions:

  interface ArrayExpression <: Expression {
    type: "ArrayExpression";
    elements: [ Expression | null ];
  }
```
Merge pull request #413 from hmalphettes/master

Fix #412 - Support for holes inside Arrays
Merge pull request #409 from webpack/improve/hot-logging

Add logging about downloading the hot manifest
Merge remote-tracking branch 'origin/master' into optional-require-as-global

Conflicts:
	lib/UmdMainTemplatePlugin.js
support for define([], obj), cs closure in r.e

fixes #371
fixes #407
throw on missing node.js module

fixes #411
added __webpack_hash__

fixes #422
Allow to share hotUpdateCallback

fixes #423
1.3.4