Improved the pickler: reduced execution time and output size.

The idea is to merge under a single Ref multiple entities that
are == to each other. We apply this to all value-behaved entities,
as well as arities.
Major speedup of Pickle.save et al.

This is achieved by using directly OS.{fopen,fwrite,fclose}
instead of the wrappers of the Open module (which, in turn, use
the compatibility wrappers of OS).
Fixed bug in Atom.toString and .toCompactString.