Fix incorrectly named context
#and_return doesn't take a block apparently
Attempt to bridge Broker-Invoca / Broker-Client sides

The Broker maintains a connection to Invoca via AMQP, and connections to
browser clients via websockets. However, for anything useful to be
accomplished, these two sides must be able to talk to each other, a task
which is surprisingly difficult.

Goliath performs some interesting tricks by default. For example, the
default behavior is to start the server in an `at_exit` handler, so all
you have to do is define your server class and it will automatically run
and "just work". As a consequence of this, the actual server object is
constructed internally within Goliath and it is nigh impossible to get a
programmatic handle to it from anywhere outside. The ramificiations of
this are as follows:

Goliath communicates with browser clients through *instance* methods defined
on the server class, e.g. `on_open`, etc. The Broker-Invoca side of things
communicates with the server using *class* methods, e.g.
`Broker::SocketServer.handle_call_start`. However, since the server
instance is only referenced internally within Goliath, there is no way
to bridge these two things!

I can think of virtually no solution to this problem without modifying
the internals of Goliath. So we'll do the next best thing - rip out the
necessary lines from the Goliath source and paste them into our own so
we can save a reference to the server instance!

Just kidding, that's not the next best thing, this code is garbage. It'll
have to do for now until I can come up with a better solution.