Make variable replacer __call aware

is_callable will report ANY function as available
Add authtoken routine
Add variable replacer callback
Change $recipient to $collaborator on collaborator notice
Proof of concept for authentication
Change AuthenticatedUser user to interface class.

This is necessary to force downstream classes to implement key required
functions.
Split AuthenticationBackend into two -
  - StaffAuthenticationBackend - handles backends supported in staff panel
  - UserAuthenticationBackend - handles backends supported in user panel

Registering a backend at parent level (AuthenticationBackend) will make it
available to both panels.
Split AuthLockoutBackends into two backends - for staff and user.

Monitor failed login attempts and enforce timeouts
Add TicketUser class which implement AuthenticatedUser
Add token (authtoken) based authentication to User authentication backend.
Use staff authentication backends on login and when selecting staff's
authentication backend.
Change AuthenticatedUser to abstract class

Add ability for backends to set authorization key (authkey) specific to the backend.
The authkey is tagged with the "id" of the backend that generated it.
Add ability for the backends to continue authenticated user session

Checks the session for authkey and asks the backend that generated it to
validate it and return authenticated user.
Provide facility for the backend to signout on user logout.
Discontinue Client class

TicketUser class - Abstract class with auth token implementation
TicketOwner class - extends TicketUser

Add user ticket stats to EndUser class
Make collaborator extends ticket user  - necessary for authtoken support
Make Clientession extends EndUser

Allow variable replacer to call __call functions
Use ticket owner (enduser) instead of client.
Add EndUser lookup by email to TicketUser - returns a decorated user
Refactor/improve authtoken authentication backend.
Change My Tickets (x) to Tickets (x) - with collaborators in mind
Use end user to get stats
List all tickets the user has access to including collaborator tickets
Drop join to the user table
Use internal ticket id instead of ticket number
Add patch for various db issues and enhancements

Conflicts:

	include/upgrader/streams/core.sig