Improve normalization

This patch set fixes some of the problems caught by the new tests introduced yesterday. It ends up re-implementing some of the stuff that comes for free in the builder, and work on bringing that in may make these obsolete. In the meantime, though, this makes sure the reader normalizes correctly even into deep structures, and removes the need to walk the tree to normalize (drilling down is built into `blockNormalize`, so we only need to map it over the top-level blocks).

Tests are included. Further tests will be added once some consensus is reached on how much to fix word's weirdnesses (see msg sent to the list June 22 2014).