Authentication improvements

By checking for null instead of if it implements UserInterface, you'll more easily catch errors where your User model doesn't implement the required UserInterface.

An alternative is to manually check for the interface in the EloquentUserProvider and throw an exception, which may produce a more descriptive error (stack trace and so on), but I thought this was more concise - and the error you get should be clear enough.

#3009