Clean up controller write and complex_request methods.
Share code between control commands and diagnostic requests.
Fix byte count check for version and device ID commands.
Add a draft scantool script.