[loader] Add support for optional dependencies
[loader] Ignore coverage for unreachable branch
[loader] Add HISTORY entry for optional dependencies
[loader] Ignore optional dependencies without a test
[loader] Document ignoring optional dependencies without tests
[loader] Ignore undeclared optional dependencies
[loader] Fail when requiring modules with failing tests
[loader] Fix access to undefined loader instance
Merge remote-tracking branch 'upstream/dev-3.x' into optional-require
[loader] Test correct attach order of optional dependencies
[loader] Check if requires list passes tests and add optionals to it

This way _sort() has knowledge of optional requires to sort them as
dependencies
[loader] Simplify _attach test for optional dependencies
[loader] Remove error from failing dependency tests
[loader] Fix attachment order test
[loader] Document loader._canBeAttached
[loader] Rename optTest to test and add tests for it
Merge branch 'dev-3.x' into optional-require
[loader] Fix language packs not registering themselves correctly on multiple YUI instances
[loader] Document why check if a module can be attached
[loader] Fix API Docs for optionalRequires

Optional dependencies try to be consistent with the idea that they're
"optional". If the module is available (loaded and without a test or
with a passing test) it is used. If it is not available (with a failing
test), it is ignored.