Ralph Fiennes is clearly having a ball as a thoughtful, eccentric doctor, while Jack O’Connell turns in a psychotic villain for the ages