Add a links argument to `GearClient.add` (fixes #150)

* I've added a `links` argument to `GearClient.add` which,
* accepts a list of `PortMap` instances.
* The links are currently fixed to point to the host's loopback address,...
* which `geard` will actually (confusingly / understandably) route to the host's non-loopback addresses.
* My functional test for this starts a twisted server on an ephemeral port and then starts a custom Docker image (via `gear`) which attempts to connect and send bytes to its localhost.
* Gear.add creates the links necessary to get route the connection from the loopback port in the container to the listening port on one of the non-loopback addresses of the host.

I was initially confused by the fact that when you ask `gear` to link to `127.0.0.1` it actually routes traffic to one of the host's non-loopback IPs. There has been some discussion on the mailing list about the possibility of actually routing traffic to the host's loopback IP address.
 * http://lists.openshift.redhat.com/openshift-archives/users/2014-June/msg00065.html

I had a notion that the tests would only work if you first run `setenforce 0` on the host machine. But actually I may have misread the output of that command. It's not saying that "SELinux has been disabled", it's saying that "SELinux is disabled altogether, so setenforce has no effect".

```
$ setenforce 0
setenforce: SELinux is disabled

$ setenforce 1
setenforce: SELinux is disabled
```

See https://github.com/openshift/geard/issues/110#issuecomment-44869432

Fixes #150 
This is confusing me - perhaps it is meeting an API requirement I don't know of but it seems like instead of taking a list of protocols, it could just take one protocol and then buildProtocol could return that one protocol.