Credentials Table

Fixes #1389 :ok_hand: 

This is to pave the way for OAuth . I wanted to get this in and stable before making committing too far on OAuth so I'm going to put this in this sprint and OAuth next sprint (finally!).

# :sparkles: Code Review Notes :sparkles:
* Note the View I create in the Migration. How do we feel about views? I think we could use a few for better data browsing (for example, I'm tired of always having to JOIN on PackageRegistration :)). Happy to remove if people don't like it.

# :sparkles: Test Notes :sparkles: 
NOTE: Before deploying, make sure there are some _existing_ accounts with API Keys and Passwords to play with. Make sure you know the Password and API Key for each of these accounts.

## Before running "galops pc"
- [ ] Verify you can log on
- [ ] Verify you can see the correct API Key
- [ ] Verify you can reset your API Key and see the new one
- [ ] Verify you can change your password
- [ ] Verify you can reset your password by email confirmation
- [ ] Verify you can use your API Key to push packages

## After running "galops pc"
Repeat the above.

## Invariants
You should always be able to perform ALL user operations on either side of running "galops pc". The code is :sparkles: Super Leniant :sparkles: 

# :sparkles: Deployment Notes :sparkles: 
- [ ] Run Migration
- [ ] Deploy Code
- [ ] Run "galops pc -!" to verify that there are no problems creating Credential records
- [ ] Run "galops pc" to actually create Credential records for ALL users