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>
I guess this works for now, but I'm not terribly excited about this. It feels like something that would be very nonobvious if someone does end up tripping over it.