Refactors MethodCompiler::writeFunctionBody() to use NodeVisitor

Issue: #32
Uses node index instead of bytePointer in call sites

Issue: #32
Gets rid of bytePointer in TJITContext and compiler

Note:
    PushBlock instruction will not work correctly

Issue: #32
Adds access to parsed blocks by their stop offset

Issue: #32
Adds PushBlockNode

This is a helper descendant of InstructionNode.
It holds a pointer to corresponding ParsedBlock.

Issue: #32
Adds ControlGraph constructor which accepts ParsedMethod

ControlGraph is used not only for methods but also for inline blocks.
We need to generalize graph logic to allow analyzing both ParsedMethod
and ParsedBlock.

Use getParsedBytecode() method to get the associated bytecode.
Now getParsedMethod() return a container method for blocks and
the method itself if it is a method's graph.

Issue: #32
Adds block context and processes PushBlock instruction

Issue: #32
Fixes graph constructor

Issue: #32
Adds MethodCompiler::getValueFor() and setValueFor()

These functions help to create llvm::Value* objects
during JIT code generation.

Issue: #32
Builds all graph* and parsed* code into a separate libstapi

Issue: #32
Add stub for tests

Issue: #32
Adds test for TSmalltalkInstruction

Issue: #32
Adds tests for InstructionDecoder

Issue: #32
Adds tests for ControlGraph

Issue: #32
Merge branch 'feature/32/stapi_tests' of https://github.com/0x7CFE/llst into feature/32/stapi_tests