Add support for cli args -lib, -cp, -debug, -define. Add debug and define commands

So now you can:

    ihx -cp path
    ihx -lib tink_macro
    ihx -D use_rtti_doc
    ihx -debug

each of those correspond to the Haxe command line args.

I also added the following builtin commands:

    adddefine
    rmdefine
    defines
    debug

And they function more or less as you'd expect (or at least as I'd expect)
When running `print`, don't include the macro printer helper thing
Add line numbers to "print" output
Moved IhxASTFormatter to separate file, include as resource.

Also did major refactor of it, so that it uses `Context.typeof()` and
`haxe.macro.Printer` to print the types, which is a lot more accurate most
of the time.

The one limitation is with functions, where the output is as follows:

    >> function (e:Int) { return false; }
    Int -> Bool : #function:1

    >> function () { return false; }
     -> Bool : #function:0

This is a bug in haxe.macro.Printer, and I've submitted an issue here:

https://github.com/HaxeFoundation/haxe/issues/1940