Fix severe bugs in WFA::isAcceptedWithNonzeroWeight and simulate

These are of the "this never worked" variety. Basically the existing
code wasn't handling weights correctly AT ALL.
Add 'const's -- THIS IS A BREAKING CHANGE

Introduce 'const' a bunch of places that should really have it, e.g.
'WFA::intersect(WFA & other)' becomes 'WFA::intersect(WFA const & other) const'.

However, the intersect() change caused ripple changes. In particular,
the signature of the virtual function make_weight(ITrans*, ITrans*) in
wali::wfa::WeightMaker has changed to accept 'ITrans const *' instead.

What does this mean? It means that if you have a subclass of WeightMaker
and overrode that version of make_weight() (there is another overload
in the original function make_weight(sem_elem_t, sem_elem_t)), then
in the new version your subclass will HIDE the new const version instead
and it will not be called.
Kill warning