Adds Token-based Auth

This adds the ability to use username/password based auth to get an
auth token to use for subsequent calls.

  import SoftLayer
  client = SoftLayer.Client()
  client.authenticate_with_password('username', 'password')

  import SoftLayer
  client = SoftLayer.Client()
  # Get all security questions (you basically pick one at random that you have answered)
  client['User_Security_Question'].getAllObjects()
  client.authenticate_with_password('username', 'password', 122, '2004')

note: this is pending an API release to add this feature to the XML-RPC API.
Fixes a test
Adding some more network stuff to the get_instance() mask (to match the HardwareManager). Also moving port speed changes out of the CLI and into the manager.
Adding ability to control NIC speed for hardware (like CCIs) and adding unit tests.
Changing port specification after discussion
Changing CLI to match manager changes
Merge pull request #121 from beittenc/expand_networking_options

Add support for changing port speeds for hardware
Merge pull request #114 from sudorandom/token_auth

Adds Token-based Auth