added extern-C guards for integration in c++ projects and added more tolerance to the keyboard driver (some keyboards report undefined but work just as they should)