Adds support for sessionless Gapcha

The current Gapcha implementation depends on a session variable.
If the server configuration does not allow uses to keep session
variables this solution will not work. Therefore has this new
alternative implementation been made. It returns an encrypted
value to the component that shall be passed with the request and
then validated in the receiving page.