Isolate key constants used publicly

The file 'Include\ravk.h' defines a collection of constants that
represent actual keys on the keyboard and mouse.

It is necessary to abstract constants between layers of the library.

For the sake of simplicity the constants `RA_VK*` map exactly to their
`VK_*` counterparts. Many of the virtual key constants do not have
matching public values because they aren't actually physical keys.
Create abstract key state constants

Define several constants that indicate key state behaviour.

Like the abstraction steps taken for difference between the virtual key
constants used by Windows and those used by Radium.

The constant `RA_KEY_STATE_HELD` is a value that represents a key being
held down. This is after the event `RA_KEY_STATE_DEPRESSED`. The
assumption is that the value is the same as `RI_KEY_STATE_UNCHANGED`
because the raw input API does not send multiple messages for a key
being left 'up'.