Make PythonBuffer implement Ilist<byte>.

This version uses a cache of the bytes, but I'd prefer to get away from that
if possible, because it involves an extra memory hit (but only if you use
the IList<> functions).