Handle_unknown option to OneHotEncoder

OneHotEncoder fails with a error that is not helpful if a missing categorical feature is present during transformation. Add handle_unknown with an "error" and an "ignore" option.

Fixes https://github.com/scikit-learn/scikit-learn/issues/2169