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).
All of this should be async to avoid problems switching to an async backend.