Zaslat SMS: Block triangular preconditioners for PDE constrained optimization