Refine IntegrationType and HashingAlgorithm enums

Refactor encode and decode methods, and add private constructors
Move mirrors, unitMappings and obs initialization to field declaration
Make a Builder for WrapperStorage, add "keys" parameter to WrapperStorage()
Add "indexKey" field to WrapperStorage
Refine the CacheType enum