Understanding metabolic robustness of Escherichia coli using genetic and environmental perturbations