Simplify TO STRING! and complex construct via MAKE STRING! (CC 2073)

Per [CC #2073](http://curecode.org/rebol3/ticket.rsp?id=2073), this implements newer simpler invariants for TO STRING!, and removal of the existing MAKE STRING! behavior for  blocks in order to reserve it for a string creation dialect.

Though it has nothing to do with reversibility...blocks with a single element value in them that can convert to string will work as if you'd passed the element alone:

    >> to string! [1]
    == "1"

Multi-element blocks will never work, nor will single-element blocks with an any-block inside of them:

    >> to string! [1 2]
    ** Script error: invalid argument: [1 2]
    ** Where: to
    ** Near: to string! [1 2]

    >> to string! [[1]]
    ** Script error: invalid argument: [[1]]
    ** Where: to
    ** Near: to string! [[1]]

In order to properly do reversibility with TO ANY-BLOCK!, more types are supported than just BLOCK!

    >> to string! to paren! "abc def"
    == "abc def"

Slight cleanup on naming and consistency with changes in #2073 which also prevents confusion of `make_string()` with the unrelated exported function pointer `void *(*make_string)(u32 size, int unicode)` which is generated for RL_Make_String.

This didn't appear to cause any new problems in core-tests suite, which indicates that maybe the core tests need to have some tests written for TO and MAKE after this.  (!)