Multiple bug fixes and feature releases.

Due to some breaking changes in this release, we will be doing a major version bump. This PR contains the following changes -

**Changes to Options** <breaking change>
* This change modifies the basic behavior of default options in ruby flow. Default options, now called registration options, are only used for registration purposes and flow doesn't use them outside workflow/activity registrations unlike before. This matches the behavior in Java Flow. Even though this should have been the behavior from before, this is a breaking change because users might have depended on the wrong behavior of options inheritance in ruby flow.

**Changes to Runner** <breaking change>
* Changing the json structure. json config file will now support only 1 domain per file. We are also removing the need to specify a domain within each worker.
* Making more json settings optional and assigning them defaults - retention_in_days(7), number_of_workers(1) and number_of_forks_per_worker(20)


**Changes to tests**
* Added some utility builder methods.
* Added more tests for activity client
* Changed a lot of integration and unit tests to use ’new’ workflow methods instead of old ones.
* Refactored a lot of common utility stuff out. A lot more work still needs to be done to make testing easier.
* Improved executor tests

**Miscellaneous changes**
* Fix for activity client options github issue #57
* Fix exponential retry (related to Github PR# 58), restructured tests and added more tests to make sure exponential retry is stable
* Merging @mjsteger's changes that fix github issue #37 
* Workflow class can now have multiple workflows and allow workflow clients to start multiple workflows that exist in the same class.
* Adding the ability to specify tasklist with “USE_WORKER_TASK_LIST” during workflow/activity registration(which is also now the default). This will allow Activity/Workflow workers to register the activity/workflow types with the task lists that they are assigned to poll. This matches an already existing feature in Java Flow.
* Fixing a bug that was preventing workers and pollers to log to the same log file
* Fixed a bug in reap_completed_pids  method in the ForkingExecutor that was preventing it from reaping all completed processes.
* Specifying minimum ruby version in gemspec