Refactor Subscriptions integration test

Take advantage of SharedUserMethods refactoring to make the before
action easier to understand.

Refactor the create_a_new_subscription method to allow for cleaner
use in tests.
Refactor the Transactions integration test

Change the before action to take advantage of the SharedUserMethods refactoring.

Refactor the fill_in_transaction method to allow for cleaner tests.
Add seed=rand to .rspec
Add launchy, better_errors, binding_of_caller gems to Gemfile
Add collection_select for PurchasePurpose to transactions form
Refactor PaymentMethod integration test

Change the before action to make use of the refactored SharedUsermethods module.

Clean up the tests to read better.
Refactor PurchasePurpose integration test

Change the before action to make use of the refactored SharedUserMethods module.

Clean up the code creating a user to test against to assign it an
actual user instead of a random user_id.
Delete transaction_controller_spec because the test was redundant
Remove redudant Transaction Unit Tests
Refactor SharedUserMethods Module

Split up the 'log_in_active_user' method into multiple smaller
methods that make it easier to comprehend what's going on when
used in tests.

The refactor also allows differernt arguments to be given to the methods
to allow the same methods to be used in different tests.