BUG: fix broken UPLO of eigh in python3

UPLO was cast to bytes and compared to a string which is always false in
python3.
closes gh-3977
BUG: reject invalid UPLO with ValueError in eigh/eigvalsh

to prevent unintentional use of wrong function. Restores 1.7 behavior.
Merge pull request #3981 from charris/backport-1.8-3978

Backport 1.8 3978