Attempt at allowing for asynchronous responses

This solve the issues presented in both #93 and #134 without changing existing behavior.

The usage would include just adding a second parameter to your response function callback. When present, mockjax would wait for it to be called before finishing the request.

See the new test for an example.

@jakerella Could this work instead of changing the location as suggested in #93. This just allows the response callback to put the rest of the request on hold until it makes the necessary changes.