ConfigurationVar: new utility class

This class looks at an environment variable to determine what value to take on.
Eliminate warning
WFA::path_summary: Add variables in WFA to track choice of path summary implementation
WFA::path_summary: Move path_summary functions to separate file
Whitespace and formatting changes only
WFA::path_summary: offer several path_summary implementations
ConfigurationVar: Print a warning upon seeing an unexpected value

(as an environment variable value)
WFA::path_summary: Add variable for top-down evaluation with FWPDS poststar version
WFA::path_summary: cross check FWPDS both top-down and bottom-up
WFA::path_summary: Fix problem when you called WPDS impl. with no final states
Ignore .o and .os files (as built by GT build process)
StringWeight: make more robust to different orders

Now 's1 combine s2' will always put the lex.-first string first.
WFA::path_summary: three tests that pass
WFA::toWpds: allow weight transformation during the conversion

There is now a callback function 'sem_elem_t -> sem_elem_t' that will allow you to transform the weights as they are being "copied" from the WFA to the WPDS.
WFA::path_summary: fix bug relating to extend order

Suppose there is a WFA

           a/w_1       b/w_2
   -> (a) ------> (b) ------> ((c))

Then there are two possibilities for the weight that should label (a). If the 'query' member is set to 'INORDER', it should be w_1*w_2. If the 'query' member is set to 'REVERSE', it should be w_2*w_1. (Or perhaps that's backwards.)

Previously, the WPDS-based path_summaries did not pay attention to the query direction, which of course was wrong.
Test fixtures: add reach weights to fixtures/SimpleWeights
WFA::eraseState: now removes incoming transitions like a useful function
WFA: new free function wfa::delta::simplify for reducing a test case
Timer: add new timer class that actually works