Isolate CLI required resources

This change allows for programmatic usage of cupertino without including Term and Commander.  The Commander include was particularly tricky for programmatic usage as it requires that you set ```:version```, ```:description```, and automatically adds an ```at_exit {}``` block.  Previous to this change, my code that used cupertino looked like this:

```ruby
# Required by Cupertino
require 'term/ansicolor'

# Required by Cupertino
require 'commander/import'
program :version, '1.0.0' # Required by Commander
program :description, '.' # Required by Commander
# Suppress Commander's at_exit block that will always throw an error since this isn't a real Commander program
at_exit { exit! }

require 'cupertino/provisioning_portal'

[...code...]
```