Throw an exception on NSData columns larger than can be stored

See #945.

Not a complete solution (either needs to be fixed or added to the documentation as a limitation), but this makes it at least not corrupt data when given an overly large NSData.

@alazier @jpsim 
Would be nice to actually validate the data when maxing out the size - we should at least check the size of the returned data, and perhaps do some minimal validation of the contents (perhaps by setting the last byte to something we can check on retrieval)