LongUpdate support for the Pickler component

LongUpdate is called on components whenever time advances irregularly (for example, sleeping through a night). This will make it so that the pickler correctly handles that advancement in time as well as cleans up some of the logic a little bit.