Reduce the serialization into a single method that can be called recursively. This should help
cut down on method call overhead.

Also, rather than preparing an object graph for serialization, we're going to write it directly
to the output buffer provided by the CFSaveContent tag. In this fashion, the object graph will
only have to be walked once.

And, other minor optimizations (hopefully).