If a user is making infrequent edits (i.e. if reading and making small
changes), then waiting 5 seconds for a recompile is bad. Therefore we track
the time since the last recompile and use this to decide whether a recompile
should be run. This reduces the time to recompile, unless the user is typing
for a significant amount of time.