Trap interrupt during option input

* Extract OptionFetcher
  This class handles fetching the options from the user, and manages the
  various interrupt signals during input

Fixes #81