[API] Modified BT_SetInterruptAffinity API, and provided an implementation for GIC.
[OS] Added auto-initialisation of kernel-modules.
[RELEASE] Version 0.4.0 Milestone Completed.

This marks the beginning of the 0.4.0 series kernel.
This series is named Deoxyribonucleicacid of DNA for short.
[COLLECTIONS] Fix - Linked list item count was not incremented after an item was added.
[BUILD] ARMCC - Clean compile on ARMCC compiler.

Ensuring BitThunder is armcc compatible from the ground up. This will also improve code quality
throughout the project, as armcc is very good at adhering to the C specs.

For examples of the kind of changes that need to be made dive into this commit!
[OS] RESOURCES - Added a ENUM type to resources, can be used to distinguish devices.
[BSP] ZYNQ - ZED - Updated Makefile to utilise ISE 14.4 toolchain.
[FIX] Don't include bt_module_init.h twice.
[OS] SoftIRQ - Creating a softirq mechanism for BitThunder.
[OS] SoftIRQ - Added a BT_SOFTIRQ type, and structure definition.
[OS] SoftIRQ - Added initial APIs and implemented Open, Raise and Raise from ISR.
[OS] SoftIRQ - Added softirq daemon priority.
[OS] SoftIRQ - Created the softIRQ kernel module entry point, and initialise dispatcher thread.
[OS] SoftIRQ - Implemented basic dispatcher algorithm.
[OS] SoftIRQ - Implemented basic dispatcher mechanism.
[OS] SoftIRQ - Added basic softIRQ numbers.
[BUILD] SoftIRQ - Added softirq module to build system.
[OS] Modules - Allow different priorities for kernel module entries.

Currently there's just 2 priorities, the default, and .bt.module.init.0, which must come before
the default module entries.

We can add more priorites as we need, although doing so will require changes to all linker
scripts that need such modules.
[OS] SoftIRQ - FIX - Tested and fixed basic softIRQ implementation.
[KERNEL] Added a BT_kEnterCritical() and BT_kExitCritical -- Kernel only API!

This is for locking all interrupts within the kernel, over extremely short paths.
This is required for example adding tasklets to a linked list etc.

If possible other methods of exclusion should be used.