Add full support for globstar (**)

The `minimatch` library supports 'globstar', which enables recursive
matching using the '**' characters.

Flour prevents globstars from working because the `pattern` is checked
against a list of files in the `dirname` of the pattern. Since this only
traverses one level deep, globstar matches are never given a chance.

This commit detects the use of a globstar, flattens the project's filesystem
tree, and tries matching the pattern against all files in the project.
The flattened file list is locally cached to prevent uncessary cycles.