Move each command behind Command abstraction
Handle base directory name confict.
base directry name shouldn't contain any blank.
Make workspace configurable via --workspace flag.

Also, the default workspace is now `~/.fuga`.
Fix an error message.
Add configuration support via .fugarc.
generate: Print filename of the primary generated file.
Add "list" command stub.