Add tsort dependency
Add experimental topologically sorted plugin loading

An attempt towards improving the dependently referenced plugin situation
(where plugins require explicitly passing dependant plugin instances in
the opts parameter, for example: reach -> mine -> harvest, need each
other's instances).

Moved the require() call into scan(), to lookup the createPlugin factory
plugin constructor (module.exports). This object is a function but can
now have an additional property, pluginInfo.

pluginInfo supports one property, loadAfter, set to an array of plugins
the plugin should load only after. This dependency information is collected
in preload(), along with the preconfigured options, and is topologically
sorted in loadOrderly(), loading and enabling the plugins in the requested
order. The plugin will then be able to access voxel-plugins and reference
the plugins it needs (through .get('foo') or .all.foo).
Fix preloading plugins with no dependencies
Add special case to allow loading non-"voxel-" plugins

If name begins with '!', then 'voxel-' won't be prefixed. Not the cleanest
design, but motivated by kb-bindings-ui https://github.com/deathcap/kb-bindings-ui
-- a standalone module, not dependent on voxel-anything, but convenient to load
as if it were. Hmm..
Remove mandatory 'voxel-' prefix on plugins

Bad idea, while it saved typing and might have made it easier to find
relevant plugins (try keywords instead?), forcing the voxel-* naming
made it difficult and awkward to use and develop plugins which are
independent of the voxeljs ecosystem, at least to an extent where the
voxel prefix naming would not make all that much sense, but could benefit
from voxel-plugin loading compatibility anyways - case in point:
https://github.com/deathcap/craftingrecipes

The plugin name is now the NPM module name and must be spelled out in full.
Rename load -> instantiate, unload -> destroy

load/unload are far too ambiguous
Rename preload -> add, and loadOrderly -> loadAll
Update documentation for new toposort-based loading