rework shutdown/wait

- lets shutdown be called from any thread and main thread can wait
  appropriately
- use OO style in bumper
quick pass at implementing Hmc5883l dev support