list: added list_add_tail

Added a list API function to add a list item to the tail of the given
head.

Signed-off-by: Michel Megens <dev@michelmegens.net>
irq: chip: fixed a list_add bug.

The parameter order of list_add is to first pass the new object you want
to add to the list and secondly the list head. The list head is the
object the where the first object will be added after. Consider the
following list:

X - Y - Z

If you now call list_add as follows:
	* list_add(&A, &Y)

The list will look like:

X - Y - A - Z

The list_add in irq_chip_add_irq called list_add in the wrong way (i.e.
the head first and the new object as second parameter). Flipped them to
fix.

Signed-off-by: Michel Megens <dev@michelmegens.net>
simulavr: added exit register

Added an exit register definition for simul avr (SIME (SImulator Exit)).
Writing a value to this register exits the simulator and displays the
value written to the register as error code on the console. Can be used
in tests to exit with error codes.

Signed-off-by: Michel Megens <dev@michelmegens.net>
git: ignore: added an entry for vim swp files.

Vims .swp files can no longer accidently end up in the repository as
there is an entry for them in the .gitignore file now.

Signed-off-by: Michel Megens <dev@michelmegens.net>
usr: tests: added automated tests to usr/

Automated tests can be added to usr/ from now on. These tests can be
designed to run on real hardware or on simulators of real hardware. To
run all tests issue the following command in usr/

`make tests'

To run a specific test, cd into the usr/tests directory and run:

`make <testname>'

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

Signed-off-by: Michel Megens <dev@michelmegens.net>
time: timer: added basic timer API

Added a basic API for timers. Creating (i.e. starting) and stopping
timers. Timers are driven by a clocksource and 1 clock source can drive
multiple timers.

Timers are listed on the clocksource in a sorted linked list. Timers are
listed with increasing tick intervals so if you have the timers with the
following ticks:

timer 1 -> tick every 200ms
timer 2 -> tick every 100ms
timer 3 -> tick every 300ms

Then the timers will be listed on the source as:

timer 2 - timer 1 - timer 3

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