Refactor: Use size_t for {w,r}streams.c
Refactor: Use "refcount" memory management for WStream buffers

Now `wstream_write` receives pointers for WBuffer objects(created with
wstream_new_buffer), which stores a reference count to determine when it's safe
the free the buffer. This was done to enable writing of the same buffer to
multiple WStream instances