Add support for byRef C types

The default setTo: always overwrites the pointer value for the byRef argument. This change allows you to specify an NSValue to return, and will overwrite only the bytes for a value of that size. This change will not do any typecasting, it assumes that you create an NSValue of the proper type.