Implemented and tested client api key authentication

Closes #29