Tabbed results view component and various improvements

- Added ResultsView component that displays search results in a tabbed
pane and displays each individual search result on separate tab.
- FXML components loading code is reworked, all components now defined
using fx:root, corresponding controllers are now subclasses of JavaFX
layout containers and serve as both controller and root for FXML
hierarchy.
- Searching code is reworked a bit and does not use SearchEngine
anymore. SearchResult class is added to incapsulate results.
- Added ExceptionUnchecker class, providing a facility for simple
conversion of checked exceptions into unchecked.
- Various minor fixes and improvements