Revert "Revert "Revert "msm: kgsl: Add a command dispatcher to manage the ringbuffer"""

Let's try this again, with a larger audience and without breaking
the flo. The previous results were inconclusive and we rushed putting
the dispatcher back in, we need a larger audience to test it.

This reverts commit 2ca12ad5a284e7fe7b9ae904a2cfb8cf8ef10816.
msm: kgsl: Fix error returns in adreno_ringbuffer_issueibcmds

Don't try to free the link structure before it is allocated.
Return the error directly if it happens before the kzalloc()

Change-Id: I6e5bfe47a43c458f20d5799aee32c55a286ee8e3