Regex: Optimize parsing and compilation
Regex: Optimize parsing and compilation

AstNodes are now POD, stored in a single vector, accessed through
their index. The children list is implicit, with nodes storing only
the node index at which their child graph ends.

That makes reverse iteration slower, but that is only used for reverse
matching regex, which are uncommon. In the general case compilation
is now faster.

jkonecny12/kakoune,occivink/kakoune,jjthrash/kakoune,danr/kakoune,lenormf/kakoune,casimir/kakoune,jjthrash/kakoune,alexherbo2/kakoune,alexherbo2/kakoune,casimir/kakoune,Somasis/kakoune,jjthrash/kakoune,mawww/kakoune,lenormf/kakoune,alexherbo2/kakoune,Somasis/kakoune,Somasis/kakoune,jjthrash/kakoune,lenormf/kakoune,alexherbo2/kakoune,occivink/kakoune,danr/kakoune,danr/kakoune,jkonecny12/kakoune,mawww/kakoune,casimir/kakoune,Somasis/kakoune,lenormf/kakoune,casimir/kakoune,danr/kakoune,mawww/kakoune,jkonecny12/kakoune,occivink/kakoune,jkonecny12/kakoune,mawww/kakoune,occivink/kakoune