Adds template support for CCI Creation

This adds the ability to specify a template file to pull in options. The options will
  be merged with CLI-entered options with preference given to the CLI. An example of
  a CCI template is in SoftLayer/tests/fixtures/sample_template.conf.

Example template:
hostname = myhost
domain = example.com
datacenter = dal05
cpu = 4
memory = 1024
os = DEBIAN_7_64
network = 100
hourly = true
monthly= false

Example usage:
  sl cci create --template=test_template.cfg
  sl cci create --os=DEBIAN_7_64 --cpu=2 --template=test_template.cfg
Uses StringIO instead of trying to mock out all file handle method
Renames sample_template.conf to sample_cci_template.conf
False values are now overwritten with the template value
Adds --like and --export to CCI creation

* Adds --like option to `sl cci create` command
* Adds --export option to `sl cci create` command
* Added lookup() function for accessing deeply nested dictionaries
* Strings are now go through json.dumps() with the json format
* Added OS version to `sl cci detail`
CLI: Adds --private option for --copy
Adds support for images for the --like option
Fixes issues with --like and mutually exclusive options
Moves the extra functionality into class methods of CreateCCI
Adds template and export support to bmetal and hardware

* Adds --like support for bmetal
* Adds --template support for bmetal/hardware
* Adds --export support for bmetal/hardware
* Refactors many things out of SoftLayer.helpers into individual files
Fixes test ordering issue
CLI: --like now treats dedicated and private CCIs correctly
Fixes issue with detecting private-only CCIs with --like

Fixes a merge issue with ssh-keys while creating CCI's
Merge pull request #152 from sudorandom/templates

Templates (--template, --export, --like) Options on CCI/BMetal/Hardware