Switch to callback for the behaviour definition.
Parse the URL when connecting, instead of keeping
it in state as a URI. Allow the URL to be passed
in as a function to allow for more flexibility.
Introduce new error codes to the gen_lockstep
behaviour, `server_error` and `client_error`.

Server error is returned when the server responds
500..505, and client error is returned when the
server responds with 400..500.

Also introduce a new return from `handle_event`,
which is `{connect_url, NewUrl, State}`. This
makes the `gen_lockstep` process connect to the
NewUrl, making it possible to change URLs without
exposing config variables to lockstep.
Add whitespace for readability.
Add tests for URL function, `client_error` and
`connect_url`.
Move a badly placed comma.
Replace `catch call` with `try catch`.
Add timeouts to tests to make them fail instead
of hang.
Remove function input for the URL.
Change try..catch usage.
Merge pull request #5 from heroku/add-handler-event-unauthorized-omarkj

Support url changing in a running process, and some modernization