Pass context information for definitions in the first argument

As we are moving the information to Elixir, we can no longer
access it if it is in the definition node.
Move function/macro definitions to Kernel