Implement loading of modules via system directories.

The 'graft.js' extension is no longer required to identify
modules as ones required to be wrapped.

Instead you run Graft.directory on each module you want
Graft to know about, and each of the registered systems
will claim their directory and wrap / require accordingly.

The index.js file is excluded by default from this rule,
to allow you to bootstrap the systems before loading.

We also no longer require the case to match when loading
modules, but this never worked anyway due to osx.
this is a junk commit because of osx

why the hell does it have to be case insensitive.
more case file renames. grr.
aaand yet more case reloading.

i should have done this in vmware i guess.
Move away from .graft.js file extension entirely.