pass the underlying array of a slice to Buffer()

passing &data would pass the address of the Slice struct not the
underlying data... This will pass the pointer to the first element of
the slice, so it really will get the ptr to the start of the array...

im not sure if this is a good idea... but currently it seems to work.
check if the slice passed to Buffer() is > 0

otherwise we cant pass the ptr of the first element as there is none. im
not sure if this should indicate an error or not currently it doesnt...
Merge pull request #4 from mercora/slice-issue

pass the underlying array of a slice to Buffer()