WIP
Merge branch 'master' into rc5
Remove *locked* fileset phase -- it's premature to decide this now
Add add-tmp fileset protocol method, and mv-resource et al core fns
Don't remove packaged files from the fileset
Bump version
Add regex type to cli options type checker/parser
Fix issue when moving files in fileset where to/from are the same
Remove --chroot option from sift task in favor of --move regex replace
Support backslash escape of splitting character in optargs

This should not affect calling from Clojure or the REPL.

- For example, the sift task takes a --move option whose optarg form is
  MATCH:REPLACE, so you'd call it like

    boot sift --move '^foo:bar'

  to move files like foo/asdf/quu.x --> bar/asdf/quu.x. However, the
  colon character (:) is meaningful in Java regexes...

    boot sift --move '(?:f)oo:bar'

  The first colon would cause the split to happen there instead of where
  it should be done.

  This commit adds support for backslash escape of the splitting
  character in the first part of the optarg:

    boot sift --move '(?\:f)oo:bar'

  Note that escaping is only done in the first half, since the splitting
  only happens for the first unescaped split character found.
Fix issue where changed files were removed then copied again
Add :time field to TmpFile record
Add removed, added, and changed diff functions

- These functions, and the diff function itself, now take optional
  arguments following the two filesets. These arguments can be :time or
  :hash, or both. This will cause the diff to be computed with respect
  to the last modified times or md5 hashes of the files, or both. The
  default is both.
Add fileset-{added,removed,changed} functions, tmptime, and fix docstings
Add git describe function (fixes #54)
Merge branch 'rc5'