Parsing parameters for function definitions.

Reused the Decl as a parameter as there is so much overlap. Pushed
the parsing methods into the class to tidy up a little. Fixed a
horrorifically nasty bug in the horrorifically nasty macro for
looping over template containers. This was bad.

Next up is the leftover tokens in the function definition, these
are somewhat similar to the prefix of a decl so I need to split
the parsing apart and handle an identifer-less case as a raw stream
of tokens.