i2c: eeprom: added an I2C eeprom chip driver

Added a driver for the 24C02 I2C EEPROM chip, developed by Atmel. The
driver currently only supports read and write byte operations. A device
interface should be included in the next version.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2c: core: added documentation to the I2C core.

The I2C core bus functions have been documented for inclusion in the
Doxygen manual website.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2c: documented the client side of the I2C driver.

drivers/i2c/client.c:
	Contains the client side code of the I2C core driver.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2c: added docs to the I2C header.

Documented all entries in the I2C main header;

	* structures:
		- i2c_bus
		- i2c_client
		- i2c_msg
		- i2c_device_info

	* inline functions
		- i2c_create_info
		- i2c_destroy_info

And various other entries.

Signed-off-by: Michel Megens <dev@michelmegens.net>
doc: i2c: added a module for I2C drivers.

Added two modules:
	* i2c
	* i2c-atmega

The i2c module is used for the I2C core driver and contains all modules
for platform specific I2C bus drivers, for example the i2c-atmega.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2c: added the I2C core to its doxygen module.

Added the I2C core driver to the correct I2C doxygen module: i2c. The
atmega I2C bus driver will be added to the i2c-atmega module, as a child
of the i2c module.

dev: core: Removed an old module documentation definition.

Signed-off-by: Michel Megens <dev@michelmegens.net>
kernel: cpp: added support for C++

Added support for C++ to the ETA/OS kernel. The C++ support is implemented
in kernel/cplusplus.cpp.

In order for C++ to work a couple of things have to be implemented:

	* the `new' and `delete' operator
	* __cxa_guard_acquire
	* __cxa_guard_release
	* __cxa_pure_virtual
	* __cxa_guard_abort

__cxa_guard_acquire
	Lock aquired when initialising global and static variables
	during boot. This lock is only useful when booting in a concurrent
	setup, which is not appliable to ETA/OS.

__cxa_guard_release
	Releases the lock aquired using __cxa_guard_acquire.

__cxa_pure_virtual
	Implementation of pure virtual methods. This function is placed
	in the vtable when a pure virtual function is found. Usually,
	this entry is overwritten later when an actual implementation is
	found for the function. If, however, this pure virtual function
	gets called in the process - it is better to execute some guard
	function then random bytes.

__cxa_guard_abort
	C++ equivalent of exit().

Signed-off-by: Michel Megens <dev@michelmegens.net>
test: cpp: added a c++ unit test

Added a unit test to test the basic functionality of the C++ support.

Signed-off-by: Michel Megens <dev@michelmegens.net>
ETA/OS 1.1.0-rc2

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'i2c'

* I2C EEPROM driver

Signed-off-by: Michel Megens <dev@michelmegens.net>

Conflicts:
	include/etaos/i2c.h
ETA/OS 1.1.0-rc3

Signed-off-by: Michel Megens <dev@michelmegens.net>