add 'lastfailed' field to job, to record the id of failed task or workunit

recording the id of the task or workunit which causes the job suspension (more detailed reason can be found in Notes)
if it is a task id (xxx_x), the root cause of failure is failing to parse the task and put it into the queue, most likely reason is that input data of the task is not available from the given URL (no client will be involved with this)
if it is a workunit id (xxx_x_x), the root cause of failure is that this workunit has been failed more than a threshold of times at client side. It is suggested to look at the stdout/stderr/worknotes(client error log) to diagnosis the problem