Cache tab contents so we only need to load them once.
Fixed some issues with the new language page code

Put back in the time/text changes.  Made the code use the new
calc_changes() method, which is faster than calculating the entire
diff.

Fixed the LanguagePageContext objects so that setup_tab() wouldn't
call setup().  The whole point of that method is to avoid the extra
overhead.