Updated port function 

1st stab at updating the port function in order to parse the new NetworkSettings Ports dictionary and account for advanced redirects introduced in 0.6.5

- Returns a list of IP/ports combinations, which is pretty much what the API returns. For example:
  ```
[{u'HostIp': u'127.0.0.1', u'HostPort': u'4567'}] 
```
- Added unit test and integration test

### Looking for feedback:
1. Should the port function take an IP argument so we can return just the port vs the IP/Port combination? This is more backwards compatible (why the API returns a list anyway? how can you have multiple items in this list)?
2. I'd like to add a test where the host port is not specified and one is assigned at random. I noticed that for this to work the image needs to expose the port, is that right? If so, the image can be built in 2 lines but I was wondering if busybox (or other) already exposes a port.
3. Should the mock data be shorter? I pasted the whole json