set edx as a BufferRegister

polymorphic encoders can now always use EDX
as a BufferRegister, making it harder to catch
the decoder stub.
Allow user supplied buffer register

let the user pick, otherwise default to edx