Add an example with a lot of calls
Add support for reference counting functions
Use a "virtual stack"

This commits adds an upward stack to the cache manager. It allows it to store
data without allocating space on the caller/callee 's stack.
Use the preprocessor
Refactorise the cache manager

* Replace fixed registers with preprocessor macros.
* Add GNU Assembler macros
Document the Cache manager

This patch adds a top comment documenting the overall design of the software
cache mananger.

Comments about the changes to the linkerscript were added too.
Copy Changes from basic_math to math_example