move `_file_status` into `__init__` and implement `_iterate_over_files` in terms of new `_expand` and `_files_by_status` helpers

working towards issue #11
default to current directory when using `_iterate_over_files` and use it to filter by status

more work towards issue #11
also obsoletes issue #4
tests for directory-aware status command

issue #11
use `_iterate_over_files` to support directory expansion in forget and follow commands

more towards issue #11
tests for directory expansion for commit, revert, and diff

issue #11
use new `_iterate_over_files` on the fork command too
remove some extraneous whitespace