Disable concurrent build on mono because of a PLinq bug
Refactored NuGetDependencyResolver to be more robust
- Changed 5 dictionaries into 2
- Made a single structure that represents all package information
  to be used for subsequent calls
- Properly map assemblies names to paths for loading
- Use all reference assemblies in the package for compilation

#266
Refactor command-line parser

1. Add CommandOptionType in CommandLineApplication parser
2. One option can have multiple values in CommandLineApplication now
3. Add helper methods that generate help information in
CommandLineApplication
4. Replace all usages of CommandLineParser with CommandLineApplication
parser
Add support for help options of subcommands

1. Merge CommandLineApplication and CommandInfo into one class to allow a
more consistent recursive processing
2. Help options are treated specially because they are different from
common options (help options invoke actions)
3. Show help information when find invalid options/subcommands
Small improvements

1. Help command is added automatically when an app has some commands
2. Recursive parsing overkills. Change back to iterative parsing.