- factor installation into a separate method
- gem() returns true and false if loaded successfully, only
  indicates failure to load if it raises a Gem::LoadError
- only download gems that are actually missing locally.
- use rsync instead of cpio