Fix for Commit packet protocol error. (aka, System.arraycopy is not memcpy)

@Strilanc pointed out that the arguments for a System.arraycopy call
are transposed, such that the commit packet was miscalculating the IV
for CFB encryption.

This doesn't look immediately exploitable, but it's definitely wrong.
The problem is that fixing it will break compatibility with clients
that haven't yet received the fix.

This fix checks the client ID of the communicating client to see if
it contains the fix, in which case it calculates the IV properly.
Otherwise, it intentionally miscalculates the IV in order to maintain
compatibility.  In a few months, we'll phase out the backwards compat
support.