Eliminate duplication in FileUtils{,Test}

What do you think of this? A couple of remarks:

* I didn't actually run the program, just the tests / FindBugs...
* With this change the different `allFiles` methods return immutable lists instead of array lists. At a glance I don't think you're relying on them being mutable but you may want to make sure
* FindBugs gave me trouble with the different predicates which is why there are null checks everywhere even though the inputs can't be null (because the parameter is marked `@Nullable` in `Predicate#apply`).