1.0.0: Initial version
1.0.1: Add Visual Studio support
1.0.2: Add support for IMU Brick, Analog In Bricklet and Analog Out Bricklet
1.0.3: Add ChibiChannel and ChibiFrequency Methods
1.0.4: Add sync rect support to Stepper Brick bindings
1.0.5: Ensure precise timeout duration on Linux and enable struct packing for the Borland C compiler
1.0.6: Silently ignore messages from devices with unknown stack ID
       Don't generate register_callback function for devices without callbacks
       Add inline code documentation
1.0.7: Add thread for callbacks (allows to call getters in callbacks)
1.0.8: Also call the enumerate callback from the callback thread
       Ensure that the answering device matches the expected type in ipcon_add_device
1.0.9: Don't use strcpy on non-NUL-terminated strings
1.0.10: Treat '-' and ' ' as equal in device name check for backward compatibility
1.0.11: Fix handling of fragmented packets
1.0.12: Add RS485 support
1.0.13: Add chip temperature and reset functions
1.0.14: Add monoflop functionality to Dual Relay Bricklet API
1.0.15: Add time base all data function/callback and state callback to Stepper Brick API
1.0.16: Fix direction of get_all_data_period function in Stepper Brick API
        Ensure that stdint.h defines INT32_MAX
        Make add_device thread-safe
        Ensure correct shutdown order of threads
1.0.17: Add support for big endian systems
1.0.18: Fix race condition in add_device function
        Add monoflop functionality to IO-4 and IO-16 Bricklet API
1.0.19: Add WIFI support
1.0.20: Add getter for WIFI buffer status information
        Change WIFI certificate getter/setter to transfer bytes instead of a string
        Add API for setting of WIFI regulatory domain
        Add reconnect functionality to IPConnection (for WIFI Extension)
        Add API for Industrial Bricklets: Digital In 4, Digital Out 4 and Quad Relay
1.0.21: Add API for Barometer Bricklet
1.0.22: Replace Barometer Bricklet calibrate function with getter/setter for reference air pressure
1.0.23: Add get_usb_voltage function to Master Brick API
        Add Barometer Bricklet examples
1.0.24: Add API for Voltage/Current Bricklet
        Add API for GPS Bricklet
2.0.0: Add compatability for Protocol 2.0
2.0.1: Add support for custom characters in LCD Bricklets
2.0.2: Add get/set_long_wifi_key functions to Master Brick API
2.0.3: Reduce scope of request and socket mutex to improve concurrency
       Improve and unify code for response expected flag handling
       Add get/set_wifi_hostname functions and callbacks for stack/USB voltage and stack current to Master Brick API
2.0.4: Add get/set_range functions to Analog In Bricklet API
       Fix unlikely race condition in response packet handling
2.0.5: Add enable/disable functions for PositionReached and VelocityReached callbacks to Servo Brick API
       Add get/set_i2c_mode (100kHz/400kHz) functions to Temperature Bricklet API
       Add default text functions to LCD 20x4 Bricklet API
       Add callback signature to inline code documentation
       Don't dispatching callbacks after disconnect
       Fix race condition in callback handling that could result in closing the wrong socket
       Don't ignore socket errors when sending request packets
       Send a request packet at least every 10sec to improve WIFI disconnect detection
2.0.6: Add Ethernet Extension support to Master Brick API
       Avoid non-portable usage of bit fields
       Only send disconnect probe if there was no packet send or received for 5s
       Fix [u]int16 big endian handling
       Workaround struct packing bug in GCC 4.7
       Add IMU orientation and Barometer averaging API
2.0.7: Add support for PTC Bricklet and Industrial Dual 0-20mA Bricklet
       Workaround for GCC 4.7 struct packing bug is only necessary on Windows
       Avoid breaking strict-aliasing rules
2.0.8: Avoid potential infinite loop in receive thread
       Handle incoming data correctly if multiple packets are received at once
2.0.9: Avoid race condition between disconnect probe thread and disconnect function
       Don't expose internal types such as Socket, Thread, Mutex etc anymore
2.0.10: Avoid void pointer to function pointer cast warnings with MSVC
        Make averaging length configurable for Analog In Bricklet
        Add edge counters to Industrial Digital In 4, IO-4 and IO-16 Bricklet
2.0.11: Fix signature of edge count functions in IO-16 Bricklet API
2.0.12: Add support for Distance US, Dual Button, Hall Effect, LED Strip, Line, Moisture, Motion Detector, Multi Touch, Piezo Speaker, Remote Switch, Rotary Encoder, Segment Display 4x7, Sound Intensity and Tilt Bricklet
        Also apply the workaround for a struct packing bug in GCC 4.7 to generated code
2.0.13: Add Get/SetClockFrequency function to LED Strip Bricklet API
        Fix mixup of Set/GetDateTimeCallbackPeriod and Set/GetMotionCallbackPeriod in GPS Bricklet API
        Support addressing types of Intertechno and ELRO Home Easy devices in Remote Switch Bricklet API
2.1.0: Add authentication support to IPConnection and Master Brick API
       Rewrite endian handling logic to work without detecting the actual host endian
2.1.1: Add extern "C" markup to all files to force proper symbol names in C++
       Explicitly use ANSI version of WinAPI functions to support UNICODE builds on Windows
       Add simple library Makefile for Linux
       Fix race condition between device destruction and callback dispatch
2.1.2: Add support for WS2811 and WS2812 to LED Strip Bricklet API
2.1.3: Fix strnlen redeclaration in some MinGW environments
