exclude handling fixes

handle_exclude_include_walk() should only care about patterns that end in /
so that we stop recursing down subdirectores.  This way --exclude=\* only
ignores files, not subdirectories.

Stop looking at files in handle_exclude_include_walk(), we'll look
at file names later in filter_exclude_include().

in subcmd_batch_del, be sure to filter the remote list too.

in cmd_sync_local2remote, filter the local list for files, which
we are no longer doing in handle_exclude_include_walk().
move getting local file list stat() and md5sum until after handling excludes

and move handling includes into fetch_local_list() instead of after it.

This lets us get the list, filter for excludes, then run stat() and
do all the file I/O to calculate the md5sums.

This will greatly speed up any use of excludes, as we won't do all
the disk I/O that's completely unnecessary.
move filter_exclude_include() calls into fetch_remote_list()

To match fetch_local_list(), we can handle all the filtering
inside the calls to fetch_remote_list().  This also lets us
stop exporting filter_exclude_include() from S3/FileLists.py.