Merge remote-tracking branch 'upstream/master' into issue_3
Pass arguments to commands instead of querying them in commands

This aids in unit testing, where the main function and flag parsing is
not easily accessible.  Also adds the scaffolding for the rm command.
Add tests for different invocations of rm
Add the RM command

This commit adds tests and implements the rm command. It attempts to
mimic the implementation of a unix shell's rm program.  The recursive
flag isn't really necessary because google drive API is fine deleting
folders even if there are contents in them, but since the rm program in
the shell fails on it the -r flag must be passed. This is probably for
the best, since if the -s command is passed as well, everything under
the path you've specified in the drive is removed, skipping the trash.

Also, if the program detects the user made an intention to use the 'rm'
command but has failed to provide the right syntax, rm-specific syntax
is provided instead of printing the entire usage.
Merge branch 'master' into issue_3
Fix issues raised in code review

Fix two issues @mmp pointed out in code review.
Merge pull request #39 from gusennan/issue_3

adds rm functionality