can set classpath
change working dir when run from haxelib
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
Merge pull request #1 from jasononeil/master

Fixes, features and unit tests