Limit files choices based on local content

Many of the file commands only make sense on a subset of the files. For
example, dropping a file only makes sense if the file is present (unless
the "from" flag is also given).

The performance hit that comes with file limiting is a concern for large
repos. The largest repo I've tested this on is around 1700 files (so not
very large considering people use git annex for things like their
music). Getting present files ("git annex find") and getting all files
("git annex find --include '*'") are both reasonably fast, but getting
absent files ("git annex --not --in=here") has a noticeable lag.

At the moment, file limiting can be disabled completely, but it'd be
nice to be able to disable it on a per-repo basis.
Use magit-annex file listing functions in tests