[GATEWAY] Cleanup LocalGatewayShardsState

This commit tries to cleanup LocalGatewayShardsState to be more efficient
and easier to understand.
Remove some Internal* abstractions

We have lots of boilerplate code that is unnecessarily abstracting
services ie InternalIndexShard and IndexShard or InternalIndexService and
IndexService. It's enough to have concrete classes for these core classes.
remove unnecessary casts