feat(lib): Implemented Proper Bad Password Error

Changes to error:
- Now has a 'invalid_credentials' type that returns a 401

Changes to grant:
- usePasswordGrant method throws a 'invalid_credentials' error rather than a 'invalid_grant'