GET POST PUT DELETE take params, not options

  params = query params
  options = RestClient options, containing :headers, containing :params
  e.g.
  Mudbug.new('google.com').get('/', foo: 'bar') # => http://google.com/?foo=bar

  before, GET etc accepted options, so it was very awkward to provide params:
  e.g.
  Mudbug.new('google.com').get('/', headers: { params: { foo: 'bar' } })

Fix bug with options merge

  Mudbug#resource allows you to pass in options, and then
  @options.merge(options) is passed to RestClient::Resource.new
  The problem is that any 2nd level nested hashes would be lost
  e.g. @options[:headers][:accept] -- if options[:headers] has any value at
  all

  added a new merge method which preserves any 2nd level keys in @options
  if there is nothing in options to override them

  Without this fix, the old way of providing options to GET etc would not
  work correctly if you want to set query params.  Since params live inside
  :headers, the old naive merge would drop @option's accept headers.