More shared strings, add macro wrappers for strs
Use macro wrappers to access shared strings

This will provide more flexibility down the line, so that messages can
be mapped to the same string to reduce footprint, etc.
API testcase fix for updated string
Add API testcase for duk_copy()
Compiler typing fixes, last bulk change
Fix catcher flags field width
Add duk_(u)int_fast_t and duk_small_(u)int_fast_t

These are types intended to be used in true fast path code, i.e. the executor.
They are the same as plain duk_(u)int_t and duk_small_(u)int_t but are
guaranteed to be of the C99 "fast" kind -- not sure if this is useful in
practice.
Executor typing fixes
Document duk_(u)int_fast_t and duk_small_(u)int_fast_t
Format string cleanups, allow NULL+%s/%p in debug

Lots of minor string format cleanups (casts mainly).

Add a special check to detect NULL pointers with %s/%p formats in debug
logging to avoid calling the platform sprintf() with a NULL value.  This
is especially important for %s + NULL, which is not portable and may crash
on some platforms.  Debug logging will now format these specially as "NULL"
and avoid calling the platform for formatting, so debug log call sites don't
need to be careful with NULL pointers any more.
Add support for %ld/%lu/%lx to debug formatting

These should be used together with a "(long)" or "(unsigned long)" cast
to make debug prints portable and ensure 32 bit integers format correctly.
Intermediate commit: string format cleanups
Add missing %c for debug formatter
Format string cleanups, %ld instead of %d etc
Code issues update on typing