Quito 'pushenv' de 'invoke_func_prepare'
Primer paso en la reimplementación de Value/Type
Introducción de los tipos

- Reescritura de Value: una tupla con un puntero a un tipo + un puntero
  opaco a los datos. El tipo se encarga de todas las operaciones con ese puntero.

- Interpreter y Stepper reescritos con la nueva implementación.

Este cambio es la base de poder tener matrices o vectores de vectores y en
general tipos compuestos. También permite añadir métodos a los tipos y añadir
tipos nuevos con facilidad.
Añado un test de un vector de tuplas + fix
Introducimos tipo 'Function'

- Esto permitirá llamar a métodos y funciones por puntero.
Makefile: se calculan las dependencias entre ficheros automáticamente
Renombrado: name -> funcname
Quito constructores que no se usan
Simplifico la clase FuncInfo + otro mini-refactor
Quito el map '_funcs' de Interpreter

- Este era uno de los objetivos del commit sobre valores de tipo función.
Cosmética
FuncInfo => FuncValue + FuncPtr
Introduzco 'BuiltinFunc' + la función max
Implementación de 'BoundMethod' para poder llamar a métodos
Quito código muerto
Modifico métodos de Vector para cualquier 'celltype'
Mini-refactor en 'Function' + método vector::resize
Métodos 'front' y 'back' de vector
Renombro unos tests
Añado método 'size' a String