Add authentication module

This PR adds support for an authenticated signing endpoint and a default HMAC authentication provider. This extends the work originally done by @grittygrease.
We should have some minimal tests covering the code path of profile and config matching now. I would follow up and add more tests.