Refactor GLXOSD codebase to be modular; naming is now camelCase

- Refactor sensor data providers into their own files and shared
libraries: This makes it possible to compile Debian packages with
hardware-specific sensor support by implementing it as a "plugin" shared
library.

- Refactor configuration file parsing out of OSDInstance: OSDInstance
should not be responsible for reading and storing config data.

- Allow custom configuration options(might result in a very small
performance decrease): instead of storing the configuration in a struct,
we now store it in a map. This means that configuration option lookup is
now logarithmic, but it should have little to no effect because the number
of lookups and elements is negligibly small and you shouldn't worry about
this change at all.

- Change the launcher to dynamically build LD_LIBRARY_PATH and LD_PRELOAD.

- CamelCase is now used as the main convention for GLXOSD (but not
glinject). Sorry, I just find snake_case harder to read.