Add caching of permissions to the Character and User models.

This ensures that the permissions of the affected objects are evaluated
only once per object initialization (with the exception of app specific
permissions checks for EVECharacters). Prior to this change, every time
a user or character's permissions were checked, such as with
has_permission, the user's permissions were re-evaluated, which led to
substantial slow down on pages with a large number of permissions
checks, such as the group management page, (from feature/groups), the
application browse page, and the application management page.

Signed-off-by: Tyler O'Meara <Tyler@TylerOMeara.com>