Runtime declaration of firmware version, fix CR handling, add setHeatConfig()
Fixes carriage return handling in write().
begin() now accepts an optional firmware version argument — this doesn’t CHANGE the firmware, it’s how you specify to the library what version is on your printer (this is shown on the test page) — default is 268 for printers with 2.68 firmware. This is a potentially breaking change in that earlier library releases accepted a “heat time” value here instead (now handled through the separate setHeatConfig() function), and having code present for multiple firmware versions will make the library ever-so-slightly larger, which could be an issue with large programs (e.g. with embedded bitmaps) most likely on AVR. The benefit is that one doesn’t have to edit the header file just to use this now, a vanilla install will suffice.