Reference energy extremal optimization: A stochastic search algorithm applied to computational protein design