Lint expressions within ES6 Template Literals

Previously, expressions within ES6 template literals were not parsed,
resulting in lint errors caused by these expressions to be ignored. This CL
corrects this by ensuring that template expressions are parsed and checked.

Closes #1705

This is a work-in-progress, there are things here which are not quite right.
Lets try and find a better way to do this =)