allow Imager::IO->new_buffer() to accept a reference

and always make a copy of the buffer
document Imager::IO::new_buffer() changes