make appium+instruments connection more robust

lots of changes to allow instruments to panic and exit (either because of a command timeout or for some other reason) without putting appium into a bad state. it will now return NoSuchDriver errors for any commands sent for sessions which have been truncated in this way, leaving appium available for new sessions.

also, added an ios method for setting the command timeout; this assigns a variable used by bootstrap.js to determine how long the instruments client will wait for a new command.

also, tests of the foregoing!