Correct types of returning values for progress tracking and statuses,  tests for all of that, ability to worker to read saved data, expiration bugfix.

Here we go, a few more changes, most noticeable is that now statuses and progress has correct type to it and now `Status::get(job_id, :something)` will return a value from status hash with specified key and status if returned by `Status::status(job_id)` as symbol instead of string.

Also, there are tests for this functionality now, but I noticed that there are quite nasty race condition in them and I'm not entirely sure how to fix it.