Prototype of async language negotiation

Run `node examples/langpack/server.js` and open any of the HTML files found in
`examples`.

This is WIP.  For now, only language negotiation works.  Fetching actual
resources is on the todo list.
Update tests
add LPS, move IO to LPS
just use _registered to remove API changes required
remove API change
remove io from context
add a switch for LPSSession to make it dummy or connected to an LPS server