list: remove NULL_LIST

Lists may not contain NULL elements, so don't provide a mechanism to do
so!
List cleanup and tests

Break list_add out into list_insert and list_add, as list_insert will be
useful for other operations.  Rename and comment the for_each macros to
better describe their function.

Add some basic tests.
list: list_pop improvements, provide list_remove

Provide a pop funtion for head and tail.
list: add runtime list init and list_entry macro
lists: remove NULL from lists

Make sure not to get an element from an empty list and all will be
fine.
timer: cascade TIM1 and TIM2 for timestamps
shell: Remove unecessary headers

The app framework removes the need for these simple headers
mem_perf: perfcounter and memory profiling

Perfocunter overhauls and memory profiling added
Merge branch 'master' of github.com:prattmic/F4OS

s merge is necessary,
lmf4: fix build break with mem_perf
mem_perf: NULL-check malloc
mem_perf: Use config to avoid hardcoding clock speed
mem_perf: General cleanup
Add missing include guards
Update Stellaris Launchpad Defconfig
New tests framework

Based on the framework used for commands in the shell, tests are
defined with a macro, then all are run on boot.
Change command section to general user section

This section is not used by the OS, and is reserved for the user
programs to use.
Add strncpy
Tests take two arguements, error message buffer and buffer len

An enum for pass and fail has also been added.
Remove testing tests, add task creation test