If the board doesn't report a firmata version, ask for it

It's possible that the board doesn't report the firmata version before the `iterate` loop in the init function ends (mostly in high latency situations like bluetooth serial).  This fixes it by asking the board for a version and iterating until it receives it or until 5 seconds has elapsed.

Only thing I wasn't sure on was wether or not to raise an exception if firmata version wasn't reported.  What do you think?

Many thanks to @kymwatts to helping me discover this issue.