Don't ignore nil during aliasing. Attempt to fix #1159

Attempting to fix https://github.com/elixir-lang/elixir/issues/1159.

I'm not sure if this is the right fix because I don't know the logic why `:nil` was ignored during aliasing. It passes all the tests with this change and now `Enum.reverse {nil}` results in the error `(UndefinedFunctionError) undefined function: :"Elixir.Enumerable.nil".reduce/3  like any other {:atom} passes to reverse.`

Also, I added a test case (although its not a perfect test since it will detect an infinite loop by hanging rather than playing with something more sophisticated which terminates).