Make table of available RAM regions static

Instead of constructing them on the stack at runtime in every call to
platform_get_{first,last}_free_ram().
When there was is only one RAM region this makes no difference, as the
whole thing is optimised out. However, when there are more than one
region, this improves both size and speed, especially in the simple
allocator, which calls these functions twice each at every call to
malloc().