chore(views): refactor `Elgg_ViewsService` to store absolute paths

TODOs:
 * [ ] Add tests for global code that depends on this service.
 * [ ] Add tests for integration with simplecache
 * [ ] Remove special-case for core views in `getViewLocation`

This is a major refactoring of `Elgg_ViewsService` to remove global state and prep for #6844 (and #3737 to a lesser extent). I know for sure that the global functions are broken as a result of this, but we don't have tests for them. Looking for early feedback, especially in regard to **what tests we can add**.

DO NOT MERGE
Can change to:

if (!(isset($this->config->template_handler) && is_callable($this->config->template_handler)) {
  return '';
}

return $this->config->template_handler;
```