Added "difference" button to options

This change really highlights the need for caching!! Because certain
functions were now getting called about 30^4 times (rather than 30^2),
my browser couldn't handle it.

Also, to prevent the code from getting ugly, the labels need to be made
more static. They should just display ALL information, rather than try
to be clever about which bits to recalculate each time.