Making sure we can compile to haxe3
Implementing function descriptions in the console.
More type inference matching.
Merge branch 'master' of https://github.com/SimonRichardson/ihx

Conflicts:
	.gitignore
	src/ihx/CmdProcessor.hx
	src/ihx/NekoEval.hx
Changes to accomodate haxe3/haxelib3 package structure better

Changes explained:

* `run.n` -> added to repo so "haxelib git ihx git@github.com/somedevversion/ihx" will work
* `package.sh` -> simplified packaging script
* `.gitignore` -> ignore generated ihx.zip file
* `build.hxml` -> moved build file to project root, to keep it seperate from the src/ folder
* `haxelib.xml` and `haxelib.json` -> added haxelib.json.  Moved both to top level so it co-operates with "haxelib git" and "haxelib dev"
* Licensing info moved to top level to improve visibility on Github
* `build.hxml` now copies the generated neko file to `run.n`
* `package.sh` now rebuilds run.n before packaging
Basic haxe3 set implementation

I had trouble getting hxSet to work with Haxe 3.  The usage in this lib is
incredibly simple, and I've implemented it in `ihx.Set`

Also a version bump
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
Separate out test.hxml build process
Add "home" and "end" keyboard controls on unix, Ctrl-C to clear, then to exit

Windows will also work if somebody figures out the keycodes.  Currently I've left them as -1

The first Ctrl-C clears the current input (bash style), the second exits the program.

This is similar to behaviour in Python's shell, where Ctrl-D only exits if the line is
already empty.  It also matches the usage of Bash, where Ctrl-C clears the current line,
or exits the current process.

Hopefully it's the best of both worlds, but open for discussion
Updated unit tests for haxe 3 changes, and for printing the type in output

All unit tests passing.

I had to delete one unit tests: TestBuiltins.testHaxeInt32(), because that
no longer exists in Haxe 3.

I'll add some more unit tests for some haxe 3 stuff now
Added a bunch of new unit tests to cover new commands/options and haxe 3 features
Updated run.n to latest build
Updated "print" output to include the build command used

So you can debug libraries, classpaths, defines etc.
Removed unused local functions. Updated build file.

Current state passes all unit tests...
Wrap code in `#if !macro` so build macros don't break when printing them.

Update unit tests and run.n to match.

Previously if you had something with a build macro (eg. MyModel), then:

    var m = new MyModel();

would work, but when you try to print it's output:

    m

it would bomb out with an error about build macros and enums.

Not it works.  Thanks @dpeek
Updated README
fixed the formatting in some tests