Add API authentication helper.

This is a small helper service that takes Basic Auth credentials and turns them into custom HTTP headers that an API can look at.

Eventually this will grow to support OAuth credentials instead (but probably not in this PR).
There are several `assert*` methods that return deferreds already, some of them on `twisted.trial.unittest.TestCase`.