Conditionally enable hardware acceleration

Conditionally enable hardware acceleration on supported devices. For
supported devices, the whole keyboard (all keys) is redrawn on
invalidate directly to canvas, rather than some keys on off-screen
buffer.
Produce better stack traces

Without these options, ProGuard will produce stack traces that even
after deciphering, the traces will have "Unknown Source" in it, making
debugging more difficult.
Fix NullPointerException on screen rotation

On screen rotation, NullPointerException is raised since the equals()
comparison in KeyboardKey might be calling methods on null.