datacode: Updated behaviour

Switched from using base64 encoding to raw byte encoding. This will result in
smaller binaries. The source code size is bigger, since every byte in the
compressed data is now 4 characters, but the final compilation will make
it 1:1 in the object file. Base64 encoding resulted in a smaller source
code size, due to using printable characters only, but made larger object
code.

Standardized all flags to have long names:
 - o -> output
 - fmt -> format
 - f -> force

I may invert the procedure and set up the smallest flag names possible
instead...

Added check where two input files create the same function name
(and error out as a result). It could print out the message better though.