[WIP] contracts allow multiple requests per method

This allows to:
* contract test regular methods (not just callbacks)
* do multiple requests per method (i.e. multiple @url in same method)

Other changes:
* argument parsing is not performed by default anymore for contracts (self.input_string instead of self.args); this allows for more complex usecases: @search_profile {"website": "http://www.google.com/"}

Breaking changes:
* two new methods (create_requests and adjust_request) and one removed (adjust_request_args) for contracts
* self.args not available anymore

Hence all custom contracts are likely to break
Still need to update docs. Want feedback if this is a good idea and how to deal with breakage.