Move unit test from main() to shell as a command
shell.c: Reorder system(), unit_test() to remove unnessary declaration
Add a non-blocking read function
Increase RAM from 20K to 32K for later use in memory testing

If do not do this, there will be error while building image with
memtest functions implementation:

arm-none-eabi-ld: main.elf section `.bss' will not fit in region `RAM'
arm-none-eabi-ld: region `RAM' overflowed by 10876 bytes

TODO: Reduce memory test consumption
Implement memory test function, porting from hack-malloc

Reference: https://github.com/wware/stuff/tree/master/hack-malloc