Introduce array access VC in DefaultTactic

Previously, array access were generated via a code transformation in
ArrayTransformation in xlang, where Array Select and Update were
wrapped in if-then-else with an Error in the else branch. They are
now natively supported in VC generation.  Some testcases --- that would
trigger bugs when --xlang is not used with functional array ---- are
included in this commit

The commit introduces a new abstraction to traverse Leon trees and collect
path conditions. This traverser is used for the implementation of the
VC generation for arrays.
Rewrite ChooseCollector using generic Collector