Eng 3953 nullvalues

I think this fixes some of the null value handling. At least I can roundtrip nullable datetimes, strings, ints and byte arrays.

Also varbinary wasn't deserializing properly, so I hacked that in. 

We need a proper test suite and so on; there are probably some other cases that aren't working right. I'm also not sure of the difference between array of tinyint and varbinary - there's probably a mistake dealing with that scenario.