add functions, methods, tests

- add support for function definition and evaluation
- including support for lambdas, closures, high-order functions
- add tests for mentioned features
- implement some more primitives' symbols