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
This should be replaced by one argument: 

```go
cmdIpfsServeHttp.Flag.Uint("address", "/ip4/127.0.0.1/tcp/8080, "Listen Address")
```

And use multiaddr to parse it.

Later on, we could allow _partial_ multiaddrs (with default values where clear):

```
"tcp/9000"          -> /ip4/0.0.0.0/tcp/9000
"ip4/0.0.0.0"   -> /ip4/0.0.0.0/tcp/8080
```