update ICompare to return an integer value

this makes the comparison function more flexible and allows for a good
amount of code reduction
update for changes to comparison function
add a simple windows make script
regenerate compiled output