Mathematical programs with vanishing constraints: optimality conditions and constraint qualifications