Fix line-numbers for PHP in markup

The problem is, that inline php code can be anywhere inside of a html
element. To properly highlight this the php language implementation
temporarily replaces all inline php code with something like `{{PHP0}}`.
After the markup highlighting is finished it replaces it again with the
real code. In the process `\n`s are removed and then added again, which
throws off the line-numbers plugin. Additionally, depending on the order
the hooks are executed, the php implementation replaces the entire code
with `env.element.innerHTML = env.highlightedCode;`, thereby deleting
the line numbers previously added by the line-numbers plugin.

So to fix this, it must be ensured, that the lines are counted before
the php hooks execute, and the line numbering must be added after php
restored the highlighted code. But in the current Prism implementation
there is no way to ensure the order in which the callback functions of
hooks are called.

This patch adds a new optional parameter `priority` to the hooks.add()
function. The default priority is 50, but any positive or negative
integer can be used. The callbacks will be sorted with the priority
value, so a value lower than 50 will execute before the default
callbacks.

With this function it is possible to solve the php line numbering bug.