SHAMan: A Flexible Framework for Auto-tuning HPC Systems