Added null checks to string because all the other code assumes strings are never null.

I ran into multiple cases where exception handling was passing the .getMessage of a Java Exception
into the vf.string method, but this can be null, and that would hide the original exception message because
the ValuePrinter would then cause a null pointer exception.

@jurgenv is this the right way? or should the visitor fix it?
Fixed the implementation of the binary writer with the ADT type.

Fixes cwi-swat/rascal#618