[WIP] Decoupling of parser and decoder

Objectives:
 - Error handling refactor
 - Split up the concept of parsing from the concept of decoding, in the end the parser will emit tokens and the decoder will consume said tokens and create the elixir representation