avr: added device initialisation

Added single call subsystem/module/device initialisation. See
http://git.michelmegens.net/bietje/dev-init.git/ for a proof of concept.

Signed-off-by: Michel Megens <dev@michelmegens.net>
init: added subsystem init CPP definition

subsys_init(<init_func>) can be used from now on to automatically
initialise subsystems. Subsystems are highlevel drivers or systems, such
as:
	* I2C core
	* USART core
	* scheduler

Signed-off-by: Michel Megens <dev@michelmegens.net>
sysinit: added device and module init calls

Added automated module calls to:

	* timers
	* usart
	* i2c
	* gpio
	* vfs

To ensure that the init calls are linked when they reside in libraries,
driver libraries are linked using --whole-archive. See the `ld' manpages
for more information on --whole-archive.

Signed-off-by: Michel Megens <dev@michelmegens.net>
sysinit: added dev init call to the 24c02 driver

Added automated init calls to:

	* 24C02 EEPROM driver
	* ATmega I2C bus

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

Automated initialisation of subsystems, modules and devices.
ETA/OS 1.1.1

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