Added `int getNumNodes(AXESystemRef a);` to API
Added axeGetNumNodes and axeGetNumTiles

int axeGetNumNodes(AXESystemRef system);
int axeGetNumTiles(AXESystemRef system, int nodeID);
Fixed bug with register casting from exposed interface to internal interface
Added function to test thread in use
Removed some other random debug stuff
Futher tidying after myself
- Removed debug print in `CMakeLists.txt`
- Added Node type enum
- Changed bool to int for `axeGetThreadInUse` for C compatability
- Added error handling for out-of-range nodeIDs to `axeGetNumNodes` and `axeGetNodeType`
- Removed un-implemented functions.
Matched enum order to other tools, and made names less likely to clash
Removed some debug output from Thread.cpp
Add Compiler flag `-fPIC`
This fixes an issue on `x86_64` machines where linking to `libaxe.a` would throw
```
relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
```
Moved debugging define to above where it is 1st used in JIT.cpp
Added some better thread control, and removed redundant API method

Conflicts:
	include/axe-c/axe.h
	lib/SystemState.h
	lib/axe.cpp
Single stepping added

Conflicts:
	lib/axe.cpp
Get threadID has been made cleaner

Conflicts:
	lib/axe.cpp
Single Step breakpoints now modify the age of the current thread to prevent it yeilding to others in the run queue.
Removed queue skipping for single step thread.
Owness will now be on caller to clear the run queue before calling
this function
Modified single step to apropriately add/remove the thread from the runqueue
Merge branch 'single-stepping' into watchpoints

Conflicts:
	include/axe-c/axe.h
	lib/SystemState.h
	lib/Thread.cpp
	lib/axe.cpp
Merge branch 'thread-control' into watchpoints

Conflicts:
	lib/axe.cpp