parseme siblings, proper prelude, and better algos

 - parseme_t now has siblings_, a raw const pointer to its parent's
   children. since the top-level of our graph is a children_t, (with no
   associated parseme), it was impossible to traverse upwards through all
   levels by following each node's parent. instead, now we go upwards by
   following each node's siblings container (by xs.owner()->siblings())

 - new algorithms that work on a per-siblings basis have been written.
   there are still many cases where we wish to work per-parseme (like
   traversing directly upwards through our ancestors), but there are many
   times where working in a per-siblings context leads to more natural
   algorithms.

 - parsing/prelude is now correct, and we are back to a wholly working
   state! :D
functions have name & argument list again

 - pretty printing of parsemes better, because now parsemes with a lexeme2
   will display the range of the lexical stream they cover.