Misc code cleanups:
- Switch to Java 8 CompletableFuture instead of Guava ListenableFutures. With lambdas, the code is more concise.
- Update libraries to match latest bitcoinj.
- Refactor a few methods to be smaller, eliminate redundant casts, etc.
GuiUtils: fix modality bug.
PayFileClient: use file name as object toString
Server: don't show hidden files or directories.
GUI: Add a cancel button + use JFX binding framework for slightly cleaner code.