Add errors and rescheduling to sceDmac*.

The functionality seems pretty straight-forward.
Mostly implement sceDmacTryMemcpy().
Merge pull request #3991 from unknownbrackets/dmac

Implement sceDmacTryMemcpy(), improve sceDmacMemcpy()