Implementación de una versión inicial del analizador semántico

Del proyecto
------------

* Se agregan TODOs al README.
* Se actualiza el código fuente de ejemplo con pruebas para la
deteccción de errores semánticos implementados.

Cambios en el funcionamiento
----------------------------

* Se implementan dos reglas del analizador semántico. Se verifica que
no haya duplicación de símbolos para:
  * Declaraciones de métodos.
  * Declaraciones de variables (Se definen de alcance de método o de
alcance global).
* La tabla de símbolos implementa la detección de símbolos duplicados.
* Se postergo la creación de símbolos léxicos para los identificadores
en el analizador semántico. En el análizador léxico solo se crean
símbolos para los literales.
* Se agrego línea y columna para los tokens reconocidos en el análisis
léxico.
* Se cambió el atributo `valor` de `Token` por una referencia directa a
un símbolo léxico.
* Se cambió la implementación de la tabla de símbolos (de mapa a
lista), además, los tokens pueden tener una referencia directa al
símbolo que representan.
* Se agregan métodos para recorrer el árbol.
* Se crean las clases `SimboloMetodo` y `SimboloVariable`.

Corrección de bugs
------------------

* Se agrega el tipo de dato void a la definición del lenguaje.
* Se implementa correctamente la gramática `For`.
* Se corrige la implementación de la categoría léxica `Identificador.
* Se corrige la ER de identificador en debuggex.com.
* Se eliminó la creación de símbolo léxicos para las
`CategoriaLexicaPalabras` y `CategoriaLexicaUnCaracter`, estos símbolo
se deben instalar en como tiras específicas en la creación de la tabla
de símbolos.
* Se elimina un código de depuración de `ListaSentencias`.

Mejoras
-------

Ninguna.