Added functions to create ferite string from binary data in C

The original function allowed you to pass an empty string if you want to simply allocate
memory for the Ferite string instead of assigning a C string. To check if an empty string
is passed the code checked to see if the string is "\0" -- that it starts with NUL. This
assumes that NUL ends strings (not an unreasonable assumption). Unfortunately, this breaks
when Ferite strings are allowed to contain binary data.

Normally, we can get away with this since most binary files such as JPEG and GIF start with
non-NUL characters to denote file type. But quicktime .mov files start with "\0\0\0". So
the C code cannot differentiate quicktime data from an empty string.

The new functions were simply copy pasted from the old fe_new_str() related functions but
with the empty string checking and optional length processing removed (the length checking
makes no sense for binary data since binary data breaks strlen()).
Bump ferite version to 1.1.18.22
Merge branch 'release-1.1.18.22'