give the freedom modules a custom api

This gives the `turn`, `transport`, and `net` modules each their own Freedom v0.5 custom API (please note that I've renamed `transport` -> `pipe` to avoid any possible collisions between Freedom's built-in transport API).

The motivation behind doing this now was to workaround messaging issues I discovered while building a sample app -- Will mentioned that giving my modules a custom API would solve the issue.

I'm pretty happy how this turned out:
* removes the `freedom.ts` "wiring" files under each module
* enables the sample apps respond to errors much more cleanly (no more `emit`/`on` messy async coding)

Next step is to move to the new build layout...I already had this pull request in progress.
Good suggestion, although I've encountered a couple of issues while writing the churn provider which discourage me using custom Freedom channels:

1. much easier to understand regular Freedom message passing
2. difficulty of re-using channels (churn needs to establish *two* peer connections with just one signalling channel...but it seems `freedom.core().bindChannel()` will only bind a channel once)

Might be just my lack of understanding but let's optimise later :-)