Add support for raw sockets and nanomsg devices

This PR adds support for raw sockets, and nn_device(), which is a handy method for constructing low-latency adaptors, proxies etc for nanomsg.

To test shutdown of devices, we need to use nn_term(). nn_term() effectively kills the library from that point hence, which means that any unit test which uses it cannot co-exist with other tests. 

Therefore, tests using nn_term() have been moved into a *test/standalone* sub directory. 

So that we still get nice aggregated test results, I've switched to using `tapr` to run the tests. I'd have preferred `faucet` but I couldn't get it to install.

Fixes #15, #16.