Switch from external keymaps to internal (hwdb) keymaps

This commit imports the new internal keyboard handling from upstream.
This is a combination of many upstream commits, including those
that added code, removed old code, and updated the hwdb.
Some commits (hwdb ones specifically) were unrelated but brought
in anyways to keep the whole hwdb consistent.  Each upstream
commit included is as follows:

9d7d42bc406a2ac04639674281ce3ff6beeda790 - internal keymap support
0c959b39175b126fdb70ae00de37ca6d9c8ca3a1 - hwdb: keyboard -- add file
e8193554925a22b63bef0e77b8397b56d63a91ff - hwdb: keyboard -- update comments
c79d894d590fc9df4861738555cc43c477e33376 - hwdb: import data
aedc2eddd16e48d468e6ad0aea2caf00c7d37365 - hwdb: keyboard update
97a9313cafccf772ce03f5ebd36fe4d9d8412583 - hwdb: drop non-existant Samsung 900XC3 from keymap
ddc77f62244bb41d5c8261517e2e1ff1b763fc94 - switch from udev keymaps to hwdb
0c3815773331b263713f4f7b9d80bc1ca159338e - also remove keymaps-force-release directory
1b6bce89b3383904d0dab619dd38bff673f7286e - keymap: re-add Logitech USB corded/cordless models
bf89b99c5a39115112c2eda4c2103e2db54988d2 - 60-keyboard.hwdb: Fix syntax error
ce39bb6909578017aa10031638e724e038f0b859 - hwdb: data update, upstream
884c86812c51479496edd50b278383d7bb67baf0 - rules: keyboard - use builtin command

All code from each of the above commits is attributed to the original
authors.

There were some adjustments made in order to support the code differences
between upstream and eudev, which was done by myself.

Also of note is that the code can still be disabled via the --disable-keymaps
configure option, which was removed from upstream.