Phil selection refactor

- added DFS to find the 1st child to open
- `@_currentModel` stores the dereferenced Model because content can live in more than 1 book
- changed the 'selected' attribute to '_selected'