FIX: Correct Video.frame_shape and operate nicely with as_grey

`self.ptp()` should also work but suprsingly is slower...

```python

In [24]: im = np.arange(100*100).reshape(100, 100)

In [25]: %timeit im.ptp()
10000 loops, best of 3: 29.5 µs per loop

In [26]: %timeit im.max() - im.min()
10000 loops, best of 3: 28.1 µs per loop

In [27]: im = im.astype('float')

In [28]: %timeit im.max() - im.min()
100000 loops, best of 3: 15 µs per loop

In [29]: %timeit im.ptp()
100000 loops, best of 3: 16.6 µs per loop
```