re2: fixes for darwin

Probably will break other things.
Thanks to various issue reporters for suggestions.

Fixes issue 59.
Fixes issue 76.
Fixes issue 77.
Fixes issue 81.
Fixes issue 87.
Fixes issue 90.
Fixes issue 92.
Fixes issue 94.

R=rsc
CC=re2-dev
https://codereview.appspot.com/50270044
re2: add dot_nl to the RE2::Options class

This allows clients to set the “s” flag by default for a given
regular expression without the need to mess with the pattern by
prefixing it with “(?s)”.  This matters if the pattern comes
from the user.

Fixes issue 70.

R=rsc
CC=re2-dev
https://codereview.appspot.com/44070048

Committer: Russ Cox <rsc@swtch.com>
re2: update to Unicode 6.3.0

Also fix some lingering const issues.

R=rsc
CC=re2-dev
https://codereview.appspot.com/49900045
re2: use int64 for max_mem methods

Fixes issue 55.
Fixes issue 75.
Fixes issue 80.

R=rsc
CC=re2-dev
https://codereview.appspot.com/50360043
re2: fix bitstate for empty char classes

Fixes issue 52.

R=rsc
CC=re2-dev
https://codereview.appspot.com/50370043
re2: incorporate Chromium fixes

Mostly build and static init fixes, plus these more significant fixes.

From battre@chromium.org:

Use std::map<int, int> instead of SparseArray<int> to save memory.

The PrefilterTree used a SparseArray<int> for pointers to "parents" (think of
this as pointers to ancestors). Despite its name, each SparseArray that is
allocated in such a way that is can store up to N element actually consumes
O(N) memory. Always! Regardless of its utilization! Given that in a tree with
N nodes, each node could have up to O(N) ancestors, this makes the
PrefilterTree consume O(N^2) memory for N nodes. In practice PrefilterTree
nodes have only few ancestor pointers ("parents").  Therefore, it is more
economic to use a std::map<int, int> which consumes less memory.

R=rsc
CC=re2-dev
https://codereview.appspot.com/49900046