Pack compilation arguments into a stack struct

This is in preparation to adding more duk_compile_raw() arguments.
Lexer typing work
Change duk_js_compile() to use an explicit buffer

This change is needed to implement DUK_COMPILE_FUNCTION more efficiently,
and is also needed when compiling directly from a user buffer.
Fix internal calls to duk_js_compile()
First API draft for compiling from user buffer

Compile from user buffer without interning.  The current API is probably
not final because it defaults result fileName from __FILE__ which may not
be appropriate in general (cf. duk_compile() where caller provides the
fileName explicitly).
Test case whitespace trivia
Initial API testcase for userbuffer eval/compile
Release note update: userbuffer eval/compile
Avoid interning in duk_compile_string() & variants
Add internal DUK_COMPILE_NOSOURCE flag

This simplifies stack usage.
Avoid double evaluation of compile/eval macro args

String variants referred to both 'src' and 'DUK_STRLEN(src)' which would
cause double evaluation of macro arguments.  For instance, if 'src' was
obtained from a call to a function, the function would be called twice.

Fixed by taking the strlen() inside duk_api_compile.c.  Not the most elegant
thing as it would be nicer to push this to the caller's footprint, but there
is no reasonably way of doing that with C expression syntax.
API test case fixes
API naming cleanup for eval/compile

Use duk_compile_lstring() instead of duk_compile_userbuffer() to remain
consistant with the rest of the API.  The variant which doesn't automagic
the filename argument is duk_compile_lstring_filename().  Similarly for
eval.
API docs for new eval/compile variants
Improve duk_compile() API test case

Include also _filename() variants.
Release note update: eval/compile wording
Disabled snippet for manual intern testing
Merge branch 'api-compile-string'