Allow 0-length managed buffer slices

The general `cork_slice_*` functions allow you to create a 0-length
slice, but the constructor for creating a new slice from a managed
buffer does not.  We should consistently allow this.