i2c: bus: implemented API transfer function

i2c_bus_transfer is the API function to transfer multiple I2C messages
using the repeated start functionality in the I2C standard.

Signed-off-by: Michel Megens <dev@michelmegens.net>
time: sysclk: added system clock management.

sysctl can now be used to set the system clock:

	* sysctl(SYS_SET_SYSCLK, sysclk);

To get the system clock previously set with the above call use:

	* sysclk = sys_get_clock();

Signed-off-by: Michel Megens <dev@michelmegens.net>
time: tick: implemeted a sys_tick define

sys_tick:
	The CPP will process it into atomic64_get(&sys_clk->tc). This
	the sys_tick can be used as an atomic variable.

time_after/time_before
	Define function to calculate if a certain amount of time has
	passed (or not).

Signed-off-by: Michel Megens <dev@michelmegens.net>
locks: spinlock/mutex: added a wait function.

mutex_wait and spin_lock_wait wait for a spinlock or mutex to become
available. This function wont return untill the lock becomes unlocked.
After it returns it is safe to asume that the lock is unlocked.

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

	* sys_tick variable
	* time_before time_after
	* sys_clk setter/getter
Merge branch 'master' into i2c