Cleaning startswith_no_case
As strnicmp() is cpp-only, I worked on moving the statements and
conditions of the infinite-loop "for (;;)" into the for-statement
itself, actually decreasing the code-size and allowing the compiler to
optimize it, which is reflected in a smaller binary-size.

*b != 0 is equal to *b, but less readable. So I append this to my last
commit optimizing startswith_no_case.

Using strncmp() instead of memcmp() avoids a segmentation fault in case the prefix is longer than the
string (s)