Fix for DFS bug with new pattern array feature

This patch implements support for the new pattern array feature in the
Prism.languages.DFS function and fixes a bug in the autolinker plugin.

It adds an optional parameter to the callback of Prism.languages.DFS,
which contains the type of the current object as oposed to the key in
the parent. In most cases both key and type are exactly the same. Only
if the parent is an array the key will contain the index number and the
type will contain the attribute name of the array in the parent object.
The key can be used to replace the object in the parent and the type can
be used to provide the necessary context.
SQL improvements: added function token (perhaps should be `aggregate` and aliased to function), improved operators a bit, converted regex groups to non capturing
SQL improvements: Added TEMP keyword
Added SQL variable support
Merge pull request #360 from zeitgeist87/FixAutolinker

Fix for DFS bug with new pattern array feature
Merge branch 'gh-pages' of github.com:LeaVerou/prism

# By Lea Verou (3) and Andreas Rohner (1)
# Via Lea Verou
* 'gh-pages' of github.com:LeaVerou/prism:
  Added SQL variable support
  SQL improvements: Added TEMP keyword
  SQL improvements: added function token (perhaps should be `aggregate` and aliased to function), improved operators a bit, converted regex groups to non capturing
  Fix for DFS bug with new pattern array feature

Conflicts:
	prism.js