Add started and completed columns to estimate data
Move estimate distribution & evaluation methods to own class
Enforce estimate time limit internally, rather than with set_time_limit

Also improve exceptions thrown to allow tracking partial estimate data