Modular plugins

this enables plugins to expose functions over the rpc protocol.
plugins must either be a single function (for plugins which do only add behavior but not methods)

if a plugin adds methods it must be this shape:

``` js
{
  name: string,
  version: semver_string,
  manifest: {...}, //see muxrpc manifests
  init: function (server) {
    // called when use(plugin) is called...
    // must return an object which adds the methods added in the manifest.
   // these will be attached to the api object so that rpc[name].method(arg)
  // calls the method...
 }
}

```