Big refactor. No API changes yet.
Hardens OBD library, sample script.

- Adds "Host is down" error handling when out of bluetooth range.
- Adds a PID executed during connection init to prime data flow.
  Previously, the first few queries were garbled by protocol
  autodetection printing "SEARCHING...".
- Makes all formatter lambdas accept two arguments, since that's
  how they're called.
- Changes connection API to return OBD object and error object.
- Adds connection retrying to sample script.