Added orng kernel module

The orng kernel module will be able to simulate the characteristics of different
touch screens. This will allow for testing applications that depend on specific
touch screens without having the actual hardware available.
Added module parameters for bus, vendor, product and version

The module parameters 'bustype', 'vendor', 'product', and 'version' represent the
simulated device's bus type, vendor id, product id, and product revision number. These
values will be returned to userspace for the respective queries.
Added device information

Device information are used to configure the driver for a specific device. The
device is selected from the module's parameters. If the parameters don't match
a device, the generic setup is used.
Added input device

The input device receives simulated input events from userspace and bounces
them back to the listening processes. The device characteristics are configured
according to the supplied module parameters. If the parameters don't match any
known device, the generic device is used.
Fixed default target

The default target was set incorrectly within the makefile.
Added make target 'all' and 'clean'

The makefile now contains rules for the standard targets 'all' and 'clean'. The former
builds all programs, the latter removes all programs and object files.
Generic makefile rules for compiling and linking

Instead of having explicit rules for each program, the Makefile now contains a
number of generic rules. Programs and objects are configured by variables.
Split up compiler variables

The makefile now contains separate variables for controlling the C pre-processor, the
C compiler and the linker. Additionally, user-set variables and program-specific
variables are supported.
Imported Linux input header

The header <linux/input.h> in the android NDK is out-of-date. This replacement
provides extra definitions and structure fields.
Support including devinfo.h from user space

This commit adds ifdef statements around interfaces that ar enot available in
user space, or defines a replacement.
Added program 'mkdevinfo'

The new program 'mkdevinfo' will allow for reading the properties of an input device
from its device file, and encode them in C source code. The generated code will allow
for the emulation of the device by orangutan's kernel module.
Added code for opening an input file in mkdevinfo

The input file is set by the command-line option i. It has to be the device file
of a Linux evetn device.
Added read function

The read function reads characterisic properties of an event device. Most properties
are supported. The notable exception is force feedback.
Added write function

The write function converts the properties of an event device into C source code,
which can be compiled as part of orangutan's kernel module. The kernel module
will then be able to emulate the device.
Added Otoro input device specifications

The specification of all event devices on the Otoro phone have been added to
orangutan's kernel module.
Fix potential out-of-bound write when initializing absinfo structures

An out-of-bounds access could have happen when writing a device's absinfo. If the
devinfo's abs array contained more bits then there are elements in the absinfo
array (because of rounding), the absinfo's copy operation operated on invalid memory.

This problem has been fixed by only copying absinfo fields that have their bit set
in the abs array. This should never be the case for any extra bits.
Generalized device lookup function

The device lookup function now supports arbitrary search keys and compare
functions. This will allow for the implementation of various different
parameters for device selection.
Move device creation to separate function

The code for creating new devices has been moved to a separate function. This
will ease the support of future lookup parameters.
Support device lookup by name
Support name-based lookup

The module parameter 'name' allows to specify the name of the emulated device. It
takes precedence over a device id.