Switched class construction style to commonjs/node wrapped in require
Added in EventDispatcher layer instead of case by case mixins, and switched to using module.exports instead of return.
Switched addItem to add and getItemById to get
Added AbstractLoader layer and reworked LoadQueue API
Tidied formatting and comments
Tidied get and initial option setting and defaulting