Extra argument parsing into rcm.sh

Pull the `-V`, `-v`, `-q`, `-t`, and `-d` out into the
`handle_common_flags` and `handle_metadata_flags` functions, shared
between the different programs.
Add `mkrc -o` to install host-specific files

To make it easier to manage host-specific rc files, `mkrc` now supports
a `-o` option. This causes the specified file to be added to the host
section named for the current machine.

This option is in conflict with the `-t` option.
Bugfix: support -t and -d again

Due to the awesome refactoring in
fe3244ca9c8c9a38ea700851e36667b1015d11e6, the `-t` and `-d` options were
broken. Fix it by removing the `handle_metadata_flags` function and
inlining the code again, and build the `LS_ARGS` argument differently.

Clearly I need a test suite.
Add rcdn

This program will remove all your rc files that are symlinked. This can
be further controlled by `-d` and `-t`.

For example, you can feel comfortable trying new rc files because you
can quickly remove them again with `-d`.

    rcup -d thoughtbot-dotfiles
    rcdn -d thoughtbot-dotfiles

Likewise, when you're done with Python just drop it:

    rcdn -t python
rcup -f and -i

Add the `-f` and `-i` options to rcup(1). `-f` will overwrite any file
it doesn't recognize; `-i` will prompt each time, and is the default.

For example:

    rm ~/.zshrc
    touch ~/.zshrc
    rcup -f # overwrite that .zshrc with the symlink
    rcup -i # prompt whether to overwrite that .zshrc
Bump to 1.0.0
Some 1.0.0 cruft

I'll figure out `make release` someday.
Introduce exclusion patterns

The lsrc(1), rcup(1), and rcdn(1) commands now take any number of `-e`
flags, used to specify an exclusion pattern. This can also be controlled
via rcrc(5), the `EXCLUDES` variable.

An exclusion pattern specifies a file glob to skip. In the case of
lsrc(1), any file matching the glob is not listed; in rcup(1) it is not
symlinked; and in rcdn(1) it is not removed.

The file glob can be preceded by the name of a dotfiles directory
(separated from the file glob by a colon) to increase the specificity.

Useful for:

    rcdn -e rcrc
    rcup -d work-dotfiles -e bashrc
    rcup -d ~/.dotfiles -d wife-dotfiles -d sys-dotfiles -e wife-dotfiles:tigrc
Inclusionary patterns: -I

The `-I` flag serves as an "undo" for the `-e` pattern. It overrides any
matching exclusions, allowing for temporary
listing/installation/removal.

For example, if you want to try a `.pythonrc` but leave it in your
`EXCLUDES` in rcrc(5), you can do:

    rcup -Ipythonrc pythonrc
Add -C for copying files

Some files prefer to be copies instead of symlinks---for example,
OpenSSH ignores symlinks. Add the `-C` option to mkrc(1) and rcup(1) to
handle this.

    mkrc -C .ssh
    rcup -C ssh

This does raise a synchronization problem that I do not yet know how to
solve; namely, what to do when the rc file changes. Perhaps a `rcsync`
command is in order; perhaps `rcup` should handle this; perhaps `rcsync`
is a better name for `rcup`.
Fix inconsistent hostname handling

`lsrc` was stripping hostname domain suffixes, but `mkrc` was not meaning
that `mkrc -o` didn't work correctly with a suffix. This was particularly
noticeable on OS X where the hostname has a `.local` suffix by default.
Upgrade to automake 1.13.3 and autoconf 2.69

This is what is in Debian testing.
rcdn only removes symlinks

Picture this case:

    % ls -l ~/.a
    ~/.a -> ~/.dotfiles/a
    % tree ~/.dotfiles/a
    a
    `-- b
        `-- c
            `-- d
                `-- foo

Ideally we would want `~/.a/b/c/d/foo` to be the symlink, and the rest
to be actual directories. However, some people did it differently.

Running `rcdn` on the above would previously have removed `foo` from
`~/.dotfiles`. Now, it removes `~/.a` and nothing more.
Change `-e` to `-x`

Since the `-e` flag was for exclude patterns, and since it's rare for a
word with an `x` to come along, change the `-e` flag to `-x`. Better to
do it now before a new release.
Add the COPY_ALWAYS option

The suite now honors the `COPY_ALWAYS` option in rcrc(5). This can be
set to a space-separated list of file globs. Any file matching a glob is
copied instead of symlinked. This is handy both for secure programs
(`netrc`, `ssh/id_*`) and for programs that oddly re-write files
(`weechat/*`).

To always copy everything, use the `*` glob.

This is reflected throughout the suite as follows:

* lsrc now has a `-F` option which shows a symbol to indicate whether it
  is a symlink (`@`) or a copy (`X`).
* rcdn only removes symlinks unless the file under question matches a
  `COPY_ALWAYS` glob, in which case it is removed regardless of whether
  it is a symlink.
* rcup will copy instead of symlinking any file that matches any
  `COPY_ALWAYS` glob.
Document the hostname bugfix in NEWS.md.in
Move as much as possible into shared lib

Also find that lib via RCM_LIB variable, which is overridable
Add test runner and example test
More lsrc tests
Add tests for mkrc and rcup

* Adjust test runner to use PWD for HOME (not .)
* Add color
* Add assert_linked, assert_not_present helpers