Teach tag how to enumerate directories.

For list and match, currently, if no path arguments are provided, enumerate the current directory.
Hidden files can be displayed with -A. Operate recursively with -d. Enter provided directories with -e.
Fix some comments; reorder some code.
Support the --add, --enter, and --descend options for set, add, and remove as well.

Note that these operations don't implicitly operate on the current directory like list and match do