Additional flags and support for multiple files

Hi there!  Here are some improvements I made to the project:

  - Support for multiple files
  - Flags for name, version, release number, and description
  - Changed defaults for version and description to be different from what they used to be
  - Better isolation of the build process
  - Better error handling and exceptional conditions
  - Code refactoring and cleanup
  - Documentation

There are some that might be up for debate, so I tried to keep everything in separate commits for easier review.