Change summary:
1. Added support in the 'Tunable' class to mutate/crossover. 'Tunable'
is inteded to be used as a tuple of values that a function takes and
specializes over. These are the parameters that have to be searched and
autotuned. Any function that needs to be autotuned needs to express all
its autotunable parameters as a 'Tunable' tuple.
2. Added genetic algorithm implementation in 'autotune'
3. Minor changes to matMult and matMult_gold to fit into the autotune
framework