Extract OptionFetcher

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