refactored a lot

* I think you don't need pointers to channels and a global `srv`. That's really begging for nil pointer dereference.
* I don't think that you need the private `server` type and a exported one. You mainly had the same api in `lrserver.go` and `server.go` just one exported that wrapped the other.
* you can startup the lrserver http server in `NewLRServer()` and still get an error if Listen() fails.
* I rewrote the tests in GoConvey. The do the same testing (setup > handshake > shutdown) but with less code

It might be a bit much for one PR but I can reformat it if you want.