Validate index name patterns

When creating a new index pattern, we used to allow any sort of input. This caused problems (see #2326) when the user entered something invalid. This PR creates an index pattern validation directive that ties into Angular's form validation service and prevents submission when the index pattern is invalid.

Closes #2326.
As weird as it seems... `...` is a valid index name.