avr: timer: added the AVR system clock source.

The AVR system clock source is going to run the main systems which need
timing for AVR based systems. Virtual timers, scheduler run queue's are
some examples which will be using this source. It is basically the feed
for the system tick.

Signed-off-by: Michel Megens <dev@michelmegens.net>
timer: tick: added systick IRQ

The systick IRQ is responsible for updating the clocksource's tick from
the timer interrupt. The only responsibility it has is updating the `tc'
field in the clocksource data structure.

Signed-off-by: Michel Megens <dev@michelmegens.net>
time: source: updated the clk source to be atomic

The clocksource::tc field is from now on an atomic type (atomic64_t).
This to ensure that none can ever read a mashed up value when trying to
get the tick counter of a timer (which is usually updated by some IRQ).

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