Achieved 100% test coverage!

More comprehensive tests, corrected sources to pass all tests! Only skip 4 lines of code (that could affect the execution of code)
Major changes to ast node generation

 - Now all attributes need to be provided to initialize the AST nodes
 - There is no option `is_list`. All nodes can have any value (This option made no difference to anything)
 - Added some support for strings. (Only double quoted strings allowed, with no escaping for the quote)

I found that controlling the behaviour of an object from it's super-class was pretty difficult. So, let Python do the init!