On a New Class of Bilevel Programming Problems and its Use For Reformulating Mixed Integer Problems