Matching Theory and Market Design