Implement internal state machine with no transaction required

https://bugzilla.redhat.com/show_bug.cgi?id=1089061
dont ship default v2_key on cfme appliance

[skip ci]

https://bugzilla.redhat.com/show_bug.cgi?id=1132893
Get status input.

https://bugzilla.redhat.com/show_bug.cgi?id=1133624
Add key generation to appliance console

https://bugzilla.redhat.com/show_bug.cgi?id=1132893
Handle AR exceptions when a new Catalog item is created

A call to create_request might lead to AR exceptions in the model that
need to be rescued and passed on to the controller.

https://bugzilla.redhat.com/show_bug.cgi?id=1095457
allow user to specify the ipa server realm

- this adds to the cli and appliance_console
- realm is also passed to ssl certificates
- better display of error messages

https://bugzilla.redhat.com/show_bug.cgi?id=1134540
Converted image-based form buttons to Patternfly btn class buttons
Remove SOAP::Error from exception filtering since soap4r is no longer used

https://bugzilla.redhat.com/show_bug.cgi?id=1132320
Fix situation when ci_to_datacenter meets nil.

https://bugzilla.redhat.com/show_bug.cgi?id=1132556
converted tabs to spaces, aligned hash rockets, adjusted formatting
Case insensitive search of method names

https://bugzilla.redhat.com/show_bug.cgi?id=1134500

When searching for methods the case shouldn't be taken into account
Strip off any leading/trailing whitespace such as a newline.

https://bugzilla.redhat.com/show_bug.cgi?id=1126071

We shouldn't require the VERSION file to be absent of all leading/trailing whitespace such as a trailing
newline at the end of the file as many editors will insert this and it's easy to do this without realizing it matters.

Adding a newline causes the comparison of the rpm version information to NOT match the
VERSION provided by the contents of the smartproxy executable.

This causes the product_updates table to NOT be seeded with the smartproxy found in the filesystem.
:bomb:
Merge pull request #470 from jrafanie/strip_newline_from_VERSION_file

Strip off any leading/trailing whitespace such as a newline.
Merge pull request #469 from mkanoor/bugzilla_1134500

Case insensitive search of method names
Change Timecop to use blocks (easy changes)
Merge pull request #447 from kbrock/dont_ship_default_v2_key

Dont ship default v2_key on cfme appliance
Merge pull request #450 from kbrock/appliance_console_v2_key

Add key generation to appliance console
Merge pull request #466 from kbrock/appliance_console_ipa_realm

Allow user to specify the ipa server realm
Merge pull request #379 from kbrock/safe_timecop_easy

Change Timecop to use blocks (easy changes)
Merge pull request #452 from tinaafitz/automate_model_retirement_fix

Automate model - cloud retirement fix for update_retirement_status method.