Navigation changed to OOP

Navigation.php changed to an abstract base class with sub-classes to implement each type of navigation list (as they each have different logic).
Uses new language class, but DB functions have not yet been changed to ORM.
No unit tests yet, need to sort out mocking the DB first!