Implement Command::Matcher.parse(). A command parsing engine

Parser delegates most the heavy lifting to the matchers that were
already in place.