Fix new_Exp_Unary inner exp assignment
Fix lex ID memcpy size parameter (add + 1)
Update basic spec - add unary expression
Add incomplete Typesystem

Validating: void functions returning void and
functions returning parameters with same type
check assignment types
Add func decl parameters to same level as locals
add typesystem spec and to makefile
Fix params order
refractor new_Type
Validate function calls

func (arg1)
var = func (arg1)

* check return type
* match arguments and function signature
remove unused macro
improve unary exp dump
Validate new expressions
Fix command block scope

If or while, both have one or more blocks. So is a 
function declaration. The problem is that function 
declarations creates new scope. 

The close bracket of scope_block modify the stack
level used to check scope rules. The bug was a
"if" command closing bracket triggering this stack
modification erroneously.
Add bug check
Support unary expressions
Support binary expressions with type coercion
add more type tests
Merge branch 'feature/typesystem'