Made go-info use a tcp interface

The code inside the sources themselves remains largely unchanged, and I left the
ability to define your own data sources. I removed the Stop functions as well,
since they relied on some global state. As it is now, there is no global state,
all information about an endpoint is contained in its running go-routine. You
can stop individual endpoints by closing a channel which is returned from Start.
This is kind of hacky and could be changed if needed.

I updated all the docs and examples as best I could. There could be some missing
pieces.

Let me know if there's something that needs changing! It looks like a lot, but I think most of the changes are documentation related.