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.

Closes #1563
Closes #1219
Merge pull request #1571 from caitp/issue-1219-2.x

Add basic support for ES6 TemplateLiterals