goldfish_fb: implement basic rotation support

This adds support for a rotated display of the android framebuffer. As
far as the guest is concerned the location/size of the framebuffer
hasn't changed however we change how we copy the data into QEMU's own
display buffer depending on the setting of the rotation field.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
monitor: add support for dynamic command tables

This adds the scaffolding for creating dynamic command tables. Once a
monitor is initialised with dynamic command tables we can then add
additional commands to the monitor on demand.

This has the additional benefit of not having to build architecture
specific console commands into all builds of QEMU.

---
Open Questions:
  - is it worth moving all android console commands to this model?
android: add rotate console command to trigger rotation

android-commands: remove rotate command
ranchu.c: add stub console handler
add rotation to goldfish_fb and events
ranchu: set global graphic_rotation variable to map input events
configure: don't apply -O2 if extra-cflags sets optimisation

If your trying to debug and want to force -O0 then don't allow the
configure script to try and set -O2.
add goldfish_sensors: basic support for pipe based acceleration support

This imports a small chunk of the old hw-sensors code to handle the
acceleration code. The old code "supported" a bunch of different sensors
however I've dropped all the boilerplate for that. Any potential
upstream solution will probably want to enumerate things differently.

Apart from only supporting the accelerometer this also interfaces
directly with the AndroidPipe code instead of going through the qemud
layer. It also requires the updated guest code.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>