i2c.c: add i2c_setslave and i2c_openadapter

- i2c_openadapter returns a file descriptor to the adapter passed
  as an argument to the function.
- i2c_setslave uses an ioctl command to set the slave address for subsequent
  read/write operations to that particular slave.
i2c.c: add i2c read/write functions

i2c_writebytes() needs review; I've used a little trick here: the
first element of the bytes array is passed as the command byte.

i2c_readbyte() is non-essential; it is typically used for getting an
ACK from a particular slave, to check if it is present/awake on the bus.
i2c.c: add functionality to support combined read+write

i2c_add_to_buf and i2c_readwrite solve most of my problems (documented
in a blog entry).

i2c_add_to_buf() takes the address of the slave, the operation (read/write),
a pointer to the buffer and the length as *arguments* and adds it to a
global buffer of struct i2c_msg. Currently, the maximum size of the buffer
is 2, limiting the number of concurrent reads or writes to 2. However,
it doesn't limit the size of the individual read or write buffer.

i2c_readwrite() simply calls an ioctl command on I2C_RDWR and returns the
status of the operation.
Add i2c-dev.h to /virtual/linux

This file is obtained from the i2c-tools package by lm-sensors.
It provides inline functions to most of the smbus operations used
by i2c.c.
Note: It doesn't seem to compile with gcc on x86. Tested to work
with the arm-angstrom-linux-gnueabi cross-compiler.
Add the Wire library to /libraries/Wire

Wire.cpp and Wire.h contain Arduino functions for Userspace.
Fix return type of class Print related member function

The original return type (void) of write(uint8_t) prevented correct
inheritance and function overloading.
Add Wire library to ARDUINO_LIBS in Userspace.mk

Added the path to Wire to include it in the build queue.
Add example i2c_scanner

Scans the i2c bus for devices