Remove `virtual` keyword from `cleanup`

At the time `cleanup` is called, the most derived class is already known and
hiding is perfectly fine to achieve the same behavior. Relates #180.