rename a few functions, preparing to make it reentrant
better handling of splitting text nodes

If a node had multiple nodes and one of them was a text node, the handling of
splitting did not work correctly.
first pass at image support

Images, when the initial columnization is done, do not have a height since
they may not have been loaded yet. Thus, the columnization is done based on
bad data - the images are taking up zero space when we measure where to split
things. So, after everything has loaded we need to recolumnize the content
using the heights of the images after they've been loaded into the DOM.

The other thing that makes this tricky is that when you clone the contents for
the recolumnization, the cloned images behave as though they have not been
loaded, and their height/width is zero again. To combat this we take all the
loaded images and go find their respective node in the original contents (the
contents that will be cloned to re-columnize) and explicitly set a height and
width on them so that when the recolumnization happens the DOM knows how tall
and wide they are even though they are treated as if they have not yet been
loaded.
don't change IDs on img tags that already have them