add DBG_MAX_REG_SIZE constant and use it where appropriate

In a world where other architectures besides x86 exist, we can't assume
that register values are always sizeof(long).  Let's instead define a
maximum size of registers that we can handle, and modify several places
to use that instead.
move register-getting knowledge into the Registers class

Just as the syscall registers has recently been abstracted out into the
Registers class, we need to abstract out the debugging stub's knowledge
of how many registers the target actually has.
communicate to the debugger stub how big all registers are, not just defined ones

It's conceptually better if, for registers that we don't know the values
of, we don't just say they're 32-bits wide, as the current
print_reg_value does.  Therefore, when we are fetching register values
from the target, we need three values:

- the value itself;
- the size of the register in bytes;
- whether we know the value or not.

To that end, define constants for all core x86 registers GDB might ask
about, and modify the read_register interface to return all the
information we might need.