Carles Puyol commits future to Barcelona