badass new argument parsing

 - there are now two modes, one is required to run
 - update mode: no additional required arguments. optionally change
   logging level and/or log to screen
 - source mode: requires an 'action', optionally, change logging level.
   does not create log files, always prints to screen
   - actions:
     - list: see all tracked sources
     - search: search for a new source (and add it if wanted)
     - remove: remove a tracked source, by name or position in list

Note that none of this functionality is implemented yet,but it is all
supported using the argument parsing structure implemented here.