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.