Make the front-end somewhat more easier to extend

- Separate the core logic (plus rendering for now) into individual
  methods for piecemeal integration.
- Alternatively make use of the blueprint builder that can specify the
  template to wrap the preconstructed views around for custom layouts.
Moved the root to base.
Renaming permit into role

- In preparation for normalizing the concept with Flask-Principal.
Integrated Flask-Principal framework

- Making this more like a Flask plugin and leveraging a somewhat more
  common framework for better reusability (maybe).
- Removed a couple tests because we now let Flask-Principal handle the
  session cookie for the user identifier.
- Made the ACL provider callable, used to hook and initialize the app
  object that requires this function.
- Dropped the previous view decorators for the flask principal ones;
  made a shortcut of sort combining the previous function of registering
  the role (permit) to maintain similar functionality.