Add a broker

This is for @nchapman. This is the first Broker. See what you think!
Perhaps we should be able to pass in both a Relier and a Broker on object creation for testing.