Implement Drush REST API server

This is another pass at the feature proposed in #291.

Based on @grugnog's comments, I decided to split this functionality into its own set of commands. There is now a `drush api-server` command (this listens for drush commands coming in at `http://localhost:8888` by default; host and port are configurable as are custom headers and allowable IPs); and a `drush api-request` command.

The user executes a command by issuing a GET request to, for example, `http://localhost:8888/@example.local core-status`. The request string (`$_SERVER['SCRIPT_NAME']`) is parsed in `api-prepend.php` and then a `shell_exec` call is made to `drush api-request @example.local core-status`. The `api-request` command then is responsible for setting the proper response code, headers, and JSON encoded output. All output is in JSON with this approach.

This is pretty simple and comes in at ~160 lines of code. That said there are some TODOs:

- [x] Add a docs entry for this functionality
- [x] Add entry to drush.api.php
- [x] `drush_api_request()` could probably be split into a few functions.
- [x] Figure out clean way for commands to hook into api-request command.
- [x] Possibly add "whitelist" option
- [x] Add tests

Even with the additional TODOs, I think this would still be a fairly small chunk of code.

I wasn't able to reuse code from `runserver.drush.inc` but I think it is probably better this way anyhow. In the end, `runserver` is doing a lot more than this command does.

@weitzman please let me know what you think about this approach and what else needs to happen.

Kosta