Fixed: #if typeof() checks weren't compatible with FB 0.90+

FB 0.90 stopped accepting <#if typeof(...) = string>, it should now be
<#if typeof(...) = typeof(string)>. This patch finishes adjustment to this.

FB 0.90 also stopped accepting <#if fbext_TypeName(T_) = typeof(string)>
if fbext_TypeName(T_) expands to an UDT with a default constructor, for
example <#if CtorUdt = typeof(string)>. That's because <CtorUdt> will be
treated as a temporary object, which fails to compare against a
<typeof(string)> expression, causing a compiler error.

1st idea for a work-around: Add another typeof()
	<#if typeof(fbext_TypeName(T_)) = typeof(string)>
However, that triggers a bug in fbc (0.90.1, and older versions including
0.24) where the typeof() argument is not macro expanded properly.

2nd idea for a work-around: Use double typeof()
	#if typeof(typeof(fbext_TypeName(T_))) = typeof(string)
This fixes the main problem and works around the typeof macro expansion
bug, but is pretty ugly.

Final solution: Use FBEXT_IS_STRING everywhere
	#if FBEXT_IS_STRING(fbext_TypeName(T_))
FBEXT_IS_STRING internally only needs to use one typeof() because
FBEXT_IS_STRING's argument will already be macro expanded before
FBEXT_IS_STRING itself will be expanded. And using it everywhere instead
of checking against typeof(string) manually is much prettier either way.
Fixed: Unnecessary crt/string.bi #includes in math examples
Fixed: Various CONSTness issues with memcpy/memcmp/strncpy

Various modules were using FB's crt/string.bi memcpy() declaration which
does not use CONST though. However, ext has its own memcpy() declaration
in ext/algorithms/detail/common.bi that can be used instead.

This is needed because FB 0.90.1+ is more strict about passing CONST object
pointers to (non-CONST) ANY PTRs.
Finished: FB 0.90.1+ support

FB-Ext now builds with FB 0.90.1 and the latest development version of FB.
It still builds with 0.24 too.