* array.c (rb_ary_shift_m): use shared instead of MEMMOVE if with arguments

```ruby
require 'benchmark'

n = 100000000
Benchmark.bm do |x|
  ary = Array.new(n,0)
  x.report("Array#shift"){ ary.shift }

  ary = Array.new(n,0)
  x.report("Array#shift 1"){ ary.shift 1 }
end
```

before

           user     system      total        real
    Array#shift  0.000000   0.000000   0.000000 (  0.000009)
    Array#shift 1  0.270000   0.410000   0.680000 (  0.763962)

after

           user     system      total        real
    Array#shift  0.000000   0.000000   0.000000 (  0.000011)
    Array#shift 1  0.000000   0.000000   0.000000 (  0.000011)