Parent keyword

Added 'parent' keyword which can be used in the same way as the 'self' keyword in `contains:` statements. This allows a child to include its parent element as a child. A good example of its usage is where a function definition may contain another function definition, for example:

```lua
local function abc()
  local function def()
    
  end
  return def
end
```
which we could then parse into the following:
function (abc)
  title
  body
    function (def)
      title
      body

where the function's body element may contain a function element (its parent).

(Just a side note, this pull request also contains the changes made in Pull Request 171)