Enhanced CsrfGuard

This pull request allows the user to use a secret to generate tokens. $_SERVER is quite easy reverse engineerable. Even more so on shared hosting accounts.
Also, after a token has been used it will be removed and a new token will be generated before the variables are assigned to the template. This way a token can't be guessed by looking at previous pages with a form.