Allow users to pass an index_path or array of index_paths to update_table_data.

When this is passed, it won't update the entire table data, but just the cell or cells that correspond to the index_path(s) passed.

Don't merge now. Just opening for discussion. Needs tests too.
and Jamon takes the win!

```ruby
require 'benchmark'

iterations = 100_000

def array_all_members_of_mark(arr, kalss)
  unique_classes = arr.map(&:class).uniq
  (unique_classes.count == 1 && unique_classes.first == kalss)
end

def array_all_members_of_jamon(arr, klass)
  arr.select{ |e| e.is_a?(klass) }.length == arr.length
end

Benchmark.bm do |bm|
  bm.report do
    iterations.times do
      array_all_members_of_mark([1, 2, 3, 4], Fixnum)
    end
  end

  bm.report do
    iterations.times do
      array_all_members_of_jamon([1, 2, 3, 4], Fixnum)
    end
  end
end
```

```
 |2.1.0| Marks-MacBook-Pro in ~/Documents/Rickert/ProMotion ✗ → ruby benchmark.rb
       user     system      total        real
   0.240000   0.000000   0.240000 (  0.243396)
   0.100000   0.000000   0.100000 (  0.092829)
```