Backend auth with Passport

Not ready for merging. Needs login frontend.