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 #359.

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.
I agree the use of ´i´ is a bit confusing. But the more important issue is if you like the solution to the problem. It is a bit tricky and I am not sure if that is the best solution, but it is quite urgent. Because of this bug the autolinker plugin is completely broken and a lot of people have complained already (#359, #363). Apparantly a common Wordpress plugin automatically packages the autolinker plugin and so Prism is broken on Wordpress...