Order events in forward_list according to program order

Since forward_list<T>::push_back() does not exist, we implement our own
using a constant iterator together with forward_list<T>::insert_after().
This implementation is O(1).