serve command (http api)

This pull request adds a serve command which hosts a http server that listens for POST and GET requests. At the moment it's only possible to GET and POST individual blocks (blobs?).

I decided against implementing the API like it was described [in issue #2](https://github.com/jbenet/ipfs/issues/2) because
* having a /ctrl/add path is not restful since / is the location where the POSTed files end up
* distinguishing between uploaded blocks and files is unnecessary since a client can just chop the file up themselves if they want a chunked upload
> Instead of query parameters we should leverage http headers as much as possible. E.g:
`Accept: application/json` instead of `?format=json`

Good point, we should have both (some things can only modify query params and cannot add headers, its trivial to provide both).

> `GET /<path>;links` could be used, since it is specific to a path segment. It looks prettier as well. :)

Uh, variant's are not widely used. Most things that use URLs do not understand them. I think it's key that the path (or parsed path) of an ipfs http server url remains _the same_ as the ipfs path.  I think query param makes sense here, it's a query i'm doing: "I'm querying for only the links of the object at this path"