Fixed an incorrect formatted last played

The incorrect behaviour occured when the .days field of the timedelta
was negative. The old code incorrectly formatted that as '-1dXXh'.

Also fixed a bug that has been in the code since it joined the codebase,
this one was caused by using delta.total_seconds as a value, and not
calling it like a method (it is one). This caused the first conditional to
always fail.