Removing array sort from params decoder
Adding unit test coverage for sorting bug
Rewrite middleware hash to array conversion method
Merge pull request #396 from nick-desteffen/master

Ensure decoded arrays maintain their original sort order
Update README.md

Correct the existing Hydra example and provide an additional example showing the on_complete callback.
Update README.md

Correct the existing Hydra example, and add an additional one demonstrating the on_complete callback in a parallel request.
Merge pull request #402 from mbrookes/patch-1

README.md: Correct the Hydra example, and add alternative version.
Update the first Hydra example for clarity

 Revised the first parallel request example code (based on a previous version) to clarify that the third request is run in the context of the first request, and so is dependant on the result of the first request before it can be run, explaining the use of the callback.

Also reversed the order of the callback and queue in the third example, as the current code, if used in a callback to add a request to an already running queue, could result in a theoretical (if unlikely) race condition.
Update README.md
Update README.md
Reverse the order of queue and on_complete in the third Hydra example.

Revise the third Hydra example to reverse the order of the queue and callback definition. While not a problem with the code in its current form, I believe that if these two lines were reused in a more complex example they could result in an (albeit unlikely) race condition where the request could complete before the callback is defined.

Consider this example (an amalgamation of the first example and the third in its current form (third request queued before its callback is defined):

```ruby
hydra = Typhoeus::Hydra.hydra

first_request = Typhoeus::Request.new("www.example.com/posts/1.json")
first_request.on_complete do |response|
  third_request = Typhoeus::Request.new("www.example.com/posts/3.json")
  hydra.queue third_request
  third_request.on_complete do |response|
    # do_something_with response
  end
end
second_request = Typhoeus::Request.new("www.example.com/posts/2.json")

hydra.queue first_request
hydra.queue second_request
# this is a blocking call that returns once all requests are complete
hydra.run
```
Because when the third request is queued hydra is already running, I'm assuming a race could occur. As I submitted this third example, and as the order of queue and callback was opposite to other examples, I thought it best to correct it.
Merge pull request #405 from mbrookes/patch-3

Reverse the order of queue and on_complete in the third Hydra example.
Update README.md

Remove pseudo-code / comment in first Hydra example
Merge pull request #404 from mbrookes/patch-2

Update Readme.md parallel requests example.
Merge remote-tracking branch 'upstream/master' into improved-timeouts