Revert "Revert "Merge pull request #294 from bitlisp/unified-int-primitives""

This reverts commit 05895a55bae2a61237abeeca99acc2454d0a1110.

This is to apply the fix.
Fix detection of FInt types in executor
Added natural number exponentials
Removed unreliable machine ints from Random effect
Repaired java and c backends to work with improved integer primitives
adapted expected output of test021 to honor modulo
Expand integer primitive unification to encompass bigints

Conflicts:
	rts/idris_rts.h
	src/IRTS/CodegenJava.hs
Fix primitive references in test025
Fixed and extended C backend integer operations
cleanups, rename List to SexpList to disambiguate
document ideslave option
Merge pull request #313 from hannesm/cleanups

Cleanups
use 'iputStrLn $ show' instead of 'print' to work nicely with ideslave
be more precise when to emit a warning (still a workaround - fix involves to not parse the string)
changed defaultOpts to use field names for assignment
Merge pull request #314 from hannesm/use-iputstrln-not-print

use 'iputStrLn $ show' instead of 'print' to work nicely with ideslave
Merge pull request #315 from joe9/master

Changed defaultOpts to use field names for assignment
Merge branch 'unified-int-primitives-fix' of https://github.com/bitlisp/Idris-dev into bitlisp-unified-int-primitives-fix

Conflicts:
	lib/Data/Bits.idr
Update where type inference example in tutorial
Allow type class constraints in 'using' clauses
e.g. if a using block is given as

using (C a b c)
    block

Then any declaration in the block which uses all of a, b and c in
its type will have the class constraint C a b c added implicitly.

See test027 for an example