Introduce SpecsDir.validate

SpecsDir class represents the Specifications directory. Its validate
method validates the given path to be used as a specifications
directory.
function to parse args with argparse
Use parse_args_or_exit
Implement real filesystem according to the double
fix ondefined name errors
Get rid of filesystem module, use fs library

fs library provides a convenient filesystem/directory abstraction, and
it also comes with an in-memory implementation, that is useful for
testing.
Added RPMPackage class
Rename - get_package_names
get_package_names -> get_package_names_to_install
config_path -> install_config_path
config_is_json -> install_config_is_json
RPMSDir creates RPMPackage
assert that the rpm_package's path is set
Add further assertion, and a comment
Rename
Added validator for existing directories
Added get_syspath function
Format code
Use new objects in main
RPMPackage.name -> RPMPackage.get_name()

To indicate that some operation is happening in the background.