[Extra] Added a simple shell

This does use library functions (so there)
[Extra] Various fixes / improvements to the shell

- GCC seems to require stddef.h by itself for ptrdiff_t
- Not saving result of realloc at all in command_append
  and expand_str_append
- Use absolute path if command contains a / anywhere
- Print newline on successful shell exit