In vivo and in vitro protein folding : novel insights in co-translational protein folding and computational protein design