Created p2p distributed content index.

* Created NetworkManager to handle communications between peers.
* Created NetworkIndex to store into the file system the distributed index.
* Created Peer entity to represent a single peer in the network.
* Created Gateway to support dynamic port forwarding via uPnP.