Introduced IndexTemplateFilter

Added the ability to register filters on the index templates that are being applied when a new index is created. These filters will be able to filter out templates that should not be applied to newly created index.
I am concerned about this change. We are leaking communication abstraction into the service layer here. I wonder if it can be avoided by passing necessary structures of CreateIndexRequest as part of CreateIndexClusterStateUpdateRequest or referring to it as TransportMessage or passing necessary pieces of information from TransportMessage as part of CreateIndexClusterStateUpdateRequest.