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.