added parser rule for 'else if' statements

'else if' statements are really just nested 'if/else'
statements, just like in C.
converted Frames to LuciFunctions.

while everything is functioning as before, and I'm using one less
data structure, things still aren't pretty. CompileStates
still need converted into LuciFunctions and I haven't even thought
about how to improve the recycling of CompileStates/LuciFunctions
used in 'interactive Luci'.
removed framestack.

functions are now pushed onto the framestack. for now, this means
that return values need to be popped in order to pop the parent frame,
then pushed back onto the stack.
rearranging Luci's types...

each type has it's own header now.