[core] Add Y.require() AMD-style

Y.require() works similarly to Y.use() but exposes all the loaded
modules as parameters of the callback in order to use ES6 modules more
easily.

YUI().require(['some-es6-module'], function (ES6Module) {
var foo = ES6Module.foo;
});
[core] Change require() example not to use `default`
[core] Use `hasOwnProperty` instead of `in`...

...to check if a module has exports.
[core] Move require() tests to es6-module-tests
[core] Accept a single string as parameter in require()

Y.require() should accept both Y.require(['foo'], fn) and
Y.require('foo', fn)
[core] Use lowercase module names in examples
[core] Initialize counter in place
Merge branch 'es6-import' into dev-3.x