Complete refactor 2

The previous refactor focused on identifying opportunities for SRP through OOP. But classes remained excessively stateful. This refactor focuses on introducing FP patterns learned from Scala to facilitate planned features:

* Quick panel now uses promise-like futures instead of callbacks
* FilesList composes an ADT-like hierarchy
* namedtuple also provides ad-hoc ADTs espially for recalling paths from quick panel
* SettingsProxy is now a mixin
New features

* `curdir` decorator adds folder to project
* Dir decorators now show base name
* `list_active_folder` setting now shows bookmark when `false`
* Setting to preview file especially useful with `persistent_browsing`
* Setting to sort by file timestamps
* Default cross-platform lexicographic sort
* Inherited list settings like exclusion filters now aggregate based on side bar behavior