only consider root values that are strings

We should treat 0/false the same way as null/undefined/NaN for the
`root` configuration which is prepended to module paths in a combo url.
remove unused `type` assignment
variable per line for better readability
reuse index variable instead of array variable
use a descriptive name for the sorted module array
keep `len` assignment local to the for-loop
remove unused variable assignments
use `comboBase` to store the comboBase

Now we don't need `comboSource`, `base`, and `j`, so we delete them.
move `comboSource` initialization to the top
use local module name over closure variable
use `comboMeta` to store combo metadata
check for inserted modules by module name
drop module early if it dne or has been inserted
remove `groupName` variable
merge first and second for-loops

The first loop clustered modules under the comboBase and the second loop
further clustered modules by type, as well as calculating some general
information about the combo url (e.g., combo separator and max url
length).
move encoding logic into one for-loop

Now we can finally pull this loop out into its own method.
move var declarations closer to their first uses

* Eliminated 1-char var names, except for `i`
* Removed the unused `resCombos` variable
[core] Add docs for the ES6 module system
[dom] Move out of color-base module

Currently, the `dom-style` module depends on `color-base` module only for
falling back to calculate computed style on legacy Opera (<= 12), but the
latest Opera (15+) is almost the same Chrome (`Y.UA.webkit` returns truth
actually). Many core modules are depending the `dom-style` module, I expect
that many YUI modules and applications will benefit to faster from more
than a little by this change. I also hope that this resolves #1621.
[log] Allow arbitrary categories for logging