Implemented Heap Driver Layer

Implemented everything up to and including "Erstellen des Heaptreibers
intHeap" on page 17, V3

- Initialization of intHeap was done with defines defined in defines.h.
Used format similar to the defines of the stack memory addresses.
- Memory occupied by OS is hardcoded in SRAM_OS_SIZE and was set to 200.
CONSISTENCY WITH MEMORY HAS STILL TO BE CHECKED!
- SRAM Heap name was set to a global const prog_string. Might be
erroneous since string was not deallocated to its address during
assingment to intHeap->name
- Function os_initHeap sets all bytes of heap map to 0. Additionally,
this methods checks for bad heap start address (see last point).
-  Since heap driver should be able to manage several heaps (seems to be
required in later labs), an array of heap pointers (os_heaps) was
realized. The high-level functions os_initHeaps, os_getHeapListLength
and os_lookupHeap directly work on this array.
- initHeaps is called in os_init of os_core.c