Added basic auth using the `basic-auth-parser` library

I first merged all the upstream changes and resolved conflicts. Then I used the `basic-auth-parser` library to cleanly implement basic auth. Tests pass.