factor out datatypes into own file, as well as stack and stack_checker

also a rewrite of the compiler graph generation code
rake file fixes for analyzer test task
clarify that add_node only needs to be used in special cases

Usually, adding edges automatically adds nodes to the graph, too.  Only
isolated nodes need to be added manually, so do record nodes that don't
have any edges themselves, but only their ports.
fix tests for new graph implementation
comment out debug statements
add missing data edges to phi inputs
split escape function into dot_escape and filename_escape
reroute debug output into compilation log for each definition
manually add the first control-flow node

otherwise the function call is not recorded in the graph, since no
control references it
extra arg to show

determines wether to print to the given io stream, or just return
the thing
expose list of files from loaded image
main graphing routine returns graph itself
change compilation initiators to take definitions

instead of names, which must be looked up externally now
check a definition for inlinability and recursiveness
raise CompileError when definition is unable to be compiled
remove unneeded manual node addition
add input and output stack records only when used

otherwise empty records clutter up the graph
add task: `compile_all`

When called, outputs a combined control/data flow graph for each
definition that is in the image.  Performs stack depth checking,
inlining.  Does not compile combinators, although for declared quotation
stack effects that should be doable, even when no code can be generated
for the combinator only in a language that has no higher order functions.
add missing inline and recursive defintions to kernel words
fix stack effect for instruction conversion