created plugin infrastructure #327
prevented loading of the same named plugin twice #327
reworked DLHandle #327
moved DLHandle to its own file #327
renamed plugin namespace #327
broke up plugin commands and loader #327
removed plugin help method #327
added CommandLoader helper class for writing plugins #327
added shutdown path to plugin loader #327
added preLoad to CommandLoader #327

This allows plugins to stop themselves from being loaded, for example,
because of a compatibility check.
added version method to PluginInterface #327
Merge branch 'master' into plugin
fixed compilation of preLoad function #327
fixed error unloading NULL plugin #327
ignored plugins in plugins dir #327
changed unload path to not segfault if a plugin is NULL at unload #327
added version to result bson from loadPlugin #327
Merge pull request #327 from Tokutek/plugin

create plugin infrastructure

This provides an interface for building plugins (plugins::PluginInterface), a framework and commands for loading plugins using libdl (plugins::Loader), and new commands loadPlugin and unloadPlugin.  Also a helper for building plugins that just load new commands (plugins::CommandLoader)

closes #327