Add external strings support
Add ajduk external string check example
Add a build metadata JSON file with string data

This allows applications to use the strings to preseed an external
strings table.
Refactor ajduk into own file, fix warnings
Add some missing "const" specifiers for strings
Clean up external strings feature options
Add ajduk example for compile time ext strings
Add DUK_OPT_EXTSTR_FREE() macro hook
Example DUK_OPT_EXTSTR_FREE() for ajduk
Utility to extract potential external strings
Internal docs for external strings
Makefile trivia: ajduk comments
Release note: external strings, update summary
Merge branch 'external-strings'

Add support for external strings, where only a fixed size header is allocated
from the Duktape heap, with actual string data stored behind a pointer.  This
is analogous to how dynamic buffers work, except that the external string is
immutable like normal strings.

External strings are useful to reduce memory usage in low memory environments.
Duktape built-in strings and common application strings can be moved into the
application binary at compile time so that these strings only require a small
header allocation from RAM.  With Duktape built-in strings mapped to external
strings, startup Duktape heap size is about 21.5 kB.

There is no API to push external strings, but the merge provides a string
intern hook (DUK_OPT_EXTSTR_INTERN_CHECK) where an application can inspect a
string about to be merged, and if the string data has been compiled into the
application binary it can return an external pointer to the string data.
Duktape will then use an external string to represent the string in question,
reducing overall RAM usage.  The application can also use the hook to write
the string to memory mapped flash on demand, effectively writing string data
to flash on the run.

The merge also adds an optional macro hook DUK_OPT_EXTSTR_FREE which lets
the application know when an external string is no longer referenced by
Duktape.  When strings are built into the application this hook is not
necessary, but if there is any dynamic management of flash memory mapped
strings, it may be useful.