Fix return value for `current_*` dynamic methods

This was previously returning `false` instead of `nil` presumably to
ensure that that memoization inside the `current_user` method would
function properly.  I switched this to check that the instance variable
is defined in order to both return `nil` and have memoization function
correctly.  I also updated the instance variable names to reflect the
user types, preventing a bug with caching an incorrect user.