Move CommandArg to separate module
Remove Show CommandStr
Docs: describe steps in defining new wrapper
close: ensure that hClose is run

Previously, hClose might not run if hPut
failed.
Here, we make sure to try anyway.
open: use hClose rather than close

close on a non-MPD connection handle does not
make sense.
cabal: add benchmark stanza for ParseBench
Rework ParseBench
Strict fields
MPD.Commands.Types: add NFData instances
Line length
Store song tags in a HashMap