Add get_read_frame and get_write_frame

get_read_frame and get_write_frame exports frame data in a Python
friendly way.

Uses Cython's Memory view which uses PEP3118 buffer protocol. This
allows the functions to be used as inputs into other libraries which
supports the buffer protocol, for example numpy.

Example:
import vapoursynth as vs
import numpy as np
core = vs.get_core()
clip = core.std.BlankClip(color=[512,12,1023], format=vs.YUV420P10)
fr = clip.get_frame(0)
mem = fr.get_read_frame(0)
p = mem[0,0] #p = 512
import numpy as np
np.asarray(mem)

def mod_frame(n, f):
print("Frame: {}".format(n))
fout = f.copy()
data = fout.get_write_frame(0)
for x,row in enumerate(data):
    for y, value in enumerate(row):
        data[x,y] = 255
return fout

out=clip
out = core.std.ModifyFrame(clip, clip, selector=mod_frame)
print(out)
out.set_output()
read/write_frame Float Support

Adding in float support to get_read_frame and get_write_frame

Removed 8 byte sample support as 8 byte samples don't exist.