Refactored code/token implementations

...to use a shared hashing implementation. Refactored
ExampleWebApiProject.Models.AuthorizationCode to use a hashed value and
Id for storage.
Refactored factories to use generics.

Refactored factories and code/token implementations to use generics for
IDs to allow for non-string based identifiers.