Maintain order of skill queue

This was stored in a map by ID before, which re-ordered it and
caused multiple levels of the same skill to be lost.

Also fixes the case where old skills have finished training
and their negative time was counting against the real remaining time
in a queue.

Fixes #21