Credential Refactoring

This pull contains some credential refactoring that was inspired by a code review comment from @leleuj. The functional change here is the addition of Credential#getId(), which facilitates reusing credentials that are safe for long-term storage as CredentialMetaData so that credentials can  be persisted in support MFA use cases. The rest of the changes here are renames and moves for clarity.