Add test for generic files with same basename.
Use dashes for files in build directory.

This avoids potential conflicts later if fresh wants
to use other paths in the build directory for its
own purposes.
Merge pull request #42 from neersighted/concaternation

Fix the assumption that files have a unique basename.
Add support for filter commands.  This enabled encrypted dotfiles.

Filter commands are a powerful new feature which enable the mangling of
arbitrary files with custom commands.

They can be used to run any command:

    fresh config/secret.enc --filter="openssl aes-256-cbc -d -a -in"

GnuPG (the most common use case) is configured automatically.

    fresh config/secret.gpg --filter=gpg
    fresh config/secret.asc --filter=gpg

A filter is passed the source file as it's first argument.  If a filter only
reads from STDIN, it may be passed via a backpipe:

    fresh config/dotfile --filter="cat <"
Add basic testing for filters.

Filter tests are currently incomplete.  The only test currently altered to test
filters is the argument parsing test.
Change filter commands to read from STDIN.

All filter commands now read from STDIN.  If a filter command does not read from
STDIN by default, try passing '-' as the file name to force it:

    fresh config/dotfile --filter="cat -"
Remove special-casing of GnuPG
Add support for filter iteration.

This uses the standard bash scalar array syntax.  Output will be piped to each
command in turn.  To use this:

    fresh config/irssi/config.erb.asc --file=~/.irssi/config --filter=gpg:erb
Use regular pipe syntax for chained filters