New Functionality and Refactor

split into functions for readability and maintainability.

Added ability to use a config file to help secure credentials.
Added ability to specify a local update source.
Added version checking to see if update is newer than current.
Added force option to apply update even if not newer.