first pass at pre-publish filter command

This command will be used to filter non-public files from the
history of a DDR collection.
When finished this command will:
- clone a copy of a collection,
- remove all git and git-annex remotes,
- read all the JSON metadata files,
- for each one marked non-public, add to exclusion list,
- run git filter-branch using the exclusion list
- clean up

issue #38
mostly working pre-publish filter command

Still needs a bit of UI refinement: it would be nicer if it
actually executed the git filter-branch command instead of just
printing it out for the user to copy-and-paste.
But it seems to work.

issue #38
annex-get files to PUBLIC repo; filter-branch cmds > sh script

- Instead of forcing user to copy-and-paste from terminal, write
  the filter-branch commands
- Keep working data files out in destdir instead of hiding them
  in the TEMP repo.
- Final PUBLIC repo git-annex gets binaries from TEMP repo.
clearer handling of public repo path; temp repo delete now optional

- Generate final public repo path in main() and pass to mk_filterbranch_script() as an arg.
- Make deletion of temporary repo optional via an arg.
- Comments clarification.
functions for running filter-branch in subprocess (disabled)

I'd like to run filter-branch in a subprocess so the user doesn't
have to run a second shell script, but couldn't get it to work.
Functions are included here for reference.
clearer semantics for mk_filterbranch(); exit if filter fails

- Removed filterbranch_ok arg, it's not used outside this function.
- Changed "rm temp repo" to "keep temp repo".
- Added command-line arg for keeping temp repo.
- Better output messaging.
print output to logfile in addition to console
filter/public path varnames more obvious; subfunc args more generic

Made variable names for FILTER_ and PUBLIC_ repos in the main()
more obvious so it's really clear that those directories are not
the original repo directory.
Made sub-function args more generic (e.g. dest_path > path)
to make those functions simpler.
filter by production status in addition to privacy level
sort json_files before returning list
cancel filter before annex-get if collection is unpublishable

Don't waste time annex-getting a ton of files if the whole thing
is unpublishable.
- Fixed nonpublic_collection function.
- Fixed make_exclusion_list to add alert string if entire
  collection unpublishable.
- Moved exclusion list generation block before annex-get block.
remove work files after finishing the filter operation
make exclusion list before doing anything else

If the collection as a whole is not publishable then  cloning and
annex-getting the files is a waste of time..
added user-friendly documentation to ddrfilter command help
cleaned up code and comments
rm remotes from final public repo

The final public repo contained a remote pointing to the
temporary filter repository.  This is kind-of pointless once the
temp repo is deleted.
correct paths for ddr and ddrfilter commands
ddrpubcopy command, for publishing collection binaries

This command copies the specified types of binaries from a
collection repo to a specified base directory.  The resulting
simple file paths will be correctly linked-to from ddr-public.
Merge branch '038-pubfilter'
added python-dateutil to requirements