Just use empty string constant, not make an empty.
Significantly overhaul the strings code.

Introduce a grapheme iterator, along with a codepoint iterator (that
is just an alias to the same thing). Go with a flat approach to the
strands, which greatly simplifies traversal of a string and should do
a little better CPU-cache wise. Actually use strands in concatenation,
substring, joining, and repeat operations.

This patch does enough to get NQP and Rakudo building and passing the
sanity tests with the new approach; spectest looks good too. Still a
good amount of optimization and improvements possible, which will be
easier now the code is cleaner.
Fix variable names in asserts.
Toss debug code.
Fix copy-pasto when updating latin-1 encoding.
create_facts in spesh doesn't have a known value, just a known type.
Make MVM_string_gi_move_to a bunch more efficient.

Jump directly to the right strand, and then to the correct repetition.
Optimize find_cclass and find_not_cclass.

Now, they just swiftly iterate graphemes with a single iterator in the
strand case, rather than making an iterator per char read.
Merge branch 'strref'
Update ChangeLog for 2014.07.
Minor README feature updates.
Bump VERSION.
istrue: some boolification specs can be spesh'd (twice!)
remove dubious unbox_n that'd put a num into an int register
can now handle isfalse, too. (a bit naughty, though)
boolification spec may be null, which means "not type object"
add charrange handling to the NFA

This wont be used as long as nqp does not use $EDGE_CHARRANGE, so
this patch on its own should not break anything.
follow latest string refactor in source-gen script
add char name lookup aliases (LF,FF,CR and NEL)
RT #122341 handle all line separators