Multiple Credentials API

This change has two parts:

1. Add the facility to have multiple sets of credentials .
2. Add the facility to create new sets of credentials via API.

The changes lay the ground work for security features such as permissions and LMS launch inetgration.