Use David M. Gay's dtoa for molding decimals

Currently, R3 uses platform-specific code for molding decimal numbers.
This increases the effort necessary to port to new platforms like
android-arm or linux-arm

Porting R3 to android-arm we found none of the system-specific methods
currently used by R3 were available. Instead of adding another
system-specific method specifically for android-arm, we decided to
replace the system-specific methods using the dtoa function
implementation by David M. Gay.

David M. Gay's original code is available at:
http://www.netlib.org/fp/dtoa.c

This implementation brings the following advantages:

- MOLD and MOLD/ALL results will be accurate (solving cc#897).
- MOLD results will be consistent across wide range of platforms
  (solving cc#1633).
- MOLD results will be optimal: yielding the shortest string that can be
  used to reproduce the number (i.e. a string that is accurate enough).
- Makes porting to new platforms easier.
- Battle-tested solution, as this is the way how the problem was solved
  in e.g. Java, Javascript, Python, Firefox, Chrome.

The commit makes the following changes:

- David M. Gay's implementation is added as src/core/f-dtoa.c. The
  source is unmodified except for an #include of Rebol-specific
  configuration and a reference to where the source was downloaded from.
- An attribution notice is added to NOTICE.
- Configuration for f-dtoa.c is contained in src/include/reb-dtoa.h.
- The additional source is listed in src/tools/file-base.r.
- make/makefile is re-generated to accommodate the additional source.
- The HAS_ECVT, HAS_LOG10L, HAS_LONG_DOUBLE Rebol configuration defines
  are removed as they are no longer necessary.
- HAS_LL_CONSTS was previously implied by HAS_LONG_DOUBLE; it is now
  defined explicitly for the respective platforms.
- Functions for decimal conversion are modified to use dtoa.

This resolves CureCode issues 897, 1633, 1942.
Make APPLY secure against RETURN/redo (#1949)

You can break through APPLY security with RETURN/redo or native code
equivalent to that, code which is not buggy or bad in itself.

The APPLY native should clear the OPTS_REVAL flag from its return value
before it returns. The native itself, not Apply_Block in case it is used
elsewhere internally in cases where OPTS_REVAL would be OK. It is only
in calls to the native APPLY that it is a problem.

Current behavior
>> apply does [return/redo :add] [] 1 1
== 2

Preferred behavior
>> same? :add apply does [return/redo :add] []
== true

See http://issue.cc/r3/1949
bug#1956
bug#1955, updates of malconstruct error and mold help string
help strings of ASSERT and TRANSCODE
bug#1844, modification properties
bug#1958, BIND and UNBIND can work on blocks not containing (just) words
bug#1957 corr, FIRST+ help strings updated
Fix SET object/block block assuming /any (#1763)

SET without /any wasn't triggering the error it should have when
assigning a block of values that include unsets to a block or an
object. This tests for that condition and triggers the error before
even a single assignment happens, all or nothing.

See http://issue.cc/r3/1763 for the ticket.

Also added documentary comment about new unwind policy. The unwind
screening required to fix http://issue.cc/r3/1515 must be performed
elsewhere, in Set_Var, Do_Next and other related functions, for it
to work properly. Not practical to put the fix here.
Make build platform handling more robust

Change platforms.r to use pairs of "minor" platform number and value.

Add the Android platform as well as old R2 platforms.

Adapt make-boot.r accordingly.

Add a sanity check for the existence of a platform.

Fix handling of the "system/product" name.

This contribution was originally written by Richard Smolak.
Fix clipboard device code so it works identically under non-wide-char platforms

This contribution was originally written by Richard Smolak.
enhanced EVENT! datatype for event/window and event/gob set-actions
Fix GC crash with gob/parent handling

This fixes CureCode issue #1969
comment typo corrections
Merge branch 'dtoa' of https://github.com/ladislav/r3 into community
Merge branch 'fix-select-series' of https://github.com/earl/r3 into community
Merge branch 'fix-recursive-make' of https://github.com/earl/r3 into community

Conflicts:
	make/makefile
Merge branch 'fix-empty-hashed-map-lookup' of https://github.com/earl/r3 into community
Merge branch 'fix-1949-apply-return-redo' of https://github.com/BrianHawley/r3-bh into community
Merge branch 'fix-1763-set-assumes-any' of https://github.com/BrianHawley/r3-bh into community