Get rid of merged_options variable and merge-bang options

The Benchmark
```
n = 1000000
Benchmark.bm do |x|
  x.report do
    n.times do
      merged_options = options.merge(:root => key, :skip_instruct => true) # Currently creates a new variable and does not merge-bang
    end
  end
  x.report do
    n.times do
      options.merge!(:root => key, :skip_instruct => true) # Proposed, get rid of un-necessary variable and merge-bang the options
    end
  end
end
```

The Results
```
 user     system      total        real
   2.030000   0.000000   2.030000 (  1.854676)
   0.720000   0.000000   0.720000 (  0.687461)

 user     system      total        real
   1.940000   0.000000   1.940000 (  1.881605)
   0.730000   0.000000   0.730000 (  0.721945)

 user     system      total        real
   1.970000   0.000000   1.970000 (  1.952000)
   0.740000   0.000000   0.740000 (  0.740447)

 user     system      total        real
   1.870000   0.000000   1.870000 (  1.853891)
   0.720000   0.000000   0.720000 (  0.723833)

 user     system      total        real
   1.950000   0.000000   1.950000 (  1.941125)
   0.740000   0.000000   0.740000 (  0.734391)
```