Fix for release of pipe buffers

After finishing using pipes, the allocated buffers should be
freed, but the required functions were missing. The pipe
syscall allocated a new buffer on each call, until available
buffers were exhausted. Then, it returned ENFILE (NOT -ENFILE),
crashing the system.

This patch provides the missing functions and returns the
right value when buffers are not available, besides other minor
improvements to code in the fs directory.

Code size was reduced by 48 bytes.
Fix write to an array beyond its size

This patch fixes a bug in file fs/devices.c, function kdevname(),
where it overwrites the memory location following the end of static
array "buffer".

In file fs/minix/dir.c, function minix_dir_read(), changed its
declaration from using traditional C to ansi C.

Several improvements to code in fs and fs/minix directories

Code size was reduced by 176 bytes and data size reduced in 96 bytes.
Fix a bug when processing backspaces

Fixed a bug in ntty.c when processing backspaces.
Rewrited xt-key.c to reduce code size.
Clean code in some functions in fs directory.

Code size was reduced by 288 bytes and data size increased 84 bytes.
fdisk: create boot signature after partition table

Disk partitions created with ELKS fdisk are not recognized by the
ELKS kernel because they lack a signature. This patch fixes the
problem.