Implemented a very basic plugin system.

The way this works is pretty much the same way as `git` commands work.

When invoking `bundler <task>`, if the task isn't defined on Bundler::CLI,
Bundler will try and figure out if there is a `bundler-<task>` binary
present on the path. If so, it's invoked.

Same error message (and error codes) apply when a binary isn't found.

Also, this is just a first, simple pass at the problem. @indirect and I
had a chat about how it should work, and we should probably think about
offering the possibility of loading up Ruby plugins in the already
loaded Bundler environment.
normalize requires for 1.8.7 warning check
fix remove method when methods are strings
Merge pull request #3030 from bundler/plugin-system

Implemented a very basic plugin system.
Updated changelog for unreleased features [ci skip]
Document plugins [skip ci]