Java Debug Wire Protocol support

This is a reasonably complete implementation, but only messages that are
actually generated by debuggers have been implemented.  The reasoning
behind this is that it's better to leave a call unimplemented than have
something that appears implemented but has never been tested.

An attempt has been made to keep the JDWP implementation distinct from the
runtime, so that the code might be useful in other projects. Once you get
multiple simultaneous events and debugger requests with thread suspension
bouncing around, though, it's difficult to keep things "generic".
