80 columns!
allow fuzzy matching on devices
store possible device/card matches as pointers

Avoid invoking the copy constructors and storing new objects which can't
be returned (as they're local variables).
restrict list when using the -t flag
add rudimentary bash completion
install bash completion too....
offer appropriate device completion for move
fix completion for device names with whitespace

Not sure this is the best way, but it's relatively clean, and it works.
unify logic for finding by name fragment
bash-completion: detect devtype via -t
generalize gitignore
avoid copying the passed vector to find_fuzzy
use convenient methods for increase/decrease
clamp volume betweem 0-100 when using increase/decrease
abstract volume/balance output away from ponymix

Add a Notifier virtual base class and a CommandLineNotifier
implementation which handles output of volume and balance levels after a
change.
always use nullptr instead of NULL
add support for libnotify based notifier
document --notify
add zsh completion

Updated but doesn't include card/profile completion
add zsh completion for cards