Add caching of permissions to the Character and User models. Resolves #319

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>
It turns out you're not supposed to do this with the __double_underscores__: "Never invent such names; only use them as documented" -- http://legacy.python.org/dev/peps/pep-0008/#descriptive-naming-styles

I'd probably just make this a normal method called `_load_permissions()` or something.

(Github was erroring this morning so I mentioned this on jabber but it probably got dropped on the floor among other conversation)