Add basic support for ES6 TemplateLiterals

These changes are intended to prevent jshint from choking on template literals when esnext mode is enabled. It has been written to support a sub-lexing process to allow for further linting in the future. At this time it does not support escaped string characters with backslashes, due to my limited knowledge of the template literal syntax.

I am hopeful that this will pave the way for doing more useful linting with this construct, and to allow jshint to be used in applications which make use of this language feature.

Fixes #1219 (sort of).