fs: simpler static assigments
fs: improve old documentation
fs: fix bug in max amount of blocks in fs
fs: remove clutter from file_s struct

This includes the ugly fd and pipenr indexes
apps: remove unnecesary code
fs: style changes
kernel: change flush call for close call in pipes
fs: only return file from fd if it's valid
fs: add fuction to get free inodes from cache

Also remove unnecesary i_pos field from inode, replaced with proper macros
fs: properly close all files when process shuts down

This was causing bugs when things like pipes' close function was not being
called.
kernel: fix issues related to pipes

This fixes issues regarding pipes not being closed and refilled to the cache, a
serious deadlock scenario, and the logic for when to close pipes in the
write/read end.
driver/pipe: move pipe out of core kernel to it's own driver