Support download package when installing

Now users can invoke 'install' subcommand directly.

Package developer should provide the type of expected value for the
options that will be set in config file so that PACKMAN will validate
user input.
Fix a bug
Support specify installed packages in command line

Add extra check_consistency method in package definition to ensure the
installed package is ok, such as check if the package is built with MPI.

Also fix some errors.