Funcion Start() que calcula la mejor solucion para resolver el puzzle

Se cambio completamente la estructura del codigo, se maneja ahora todo
por objetos, construyendo una pila y una especie de arbol en la cual se
analiza nivel por nivel como se muestra en el siguiente link, se parte
del nodo inicio con los datos cargados del archivo entrada.txt, luego se
analiza las posibles posiciones a borrar, si se encuentra una posicion
se agrega a la pila y se agrega a los hijos del nodo actual, al tener
una cola se van borrando cada uno de los elementos de la cola hasta
tener 0, en el caso que la cola llegue a tener 0 es que no hay solucion,
si encuentra una solucion para el arbol mientras recorre la cola para el
algoritmo y retorna esa como la respuesta.

http://upload.wikimedia.org/wikipedia/commons/d/d1/Sorted_binary_tree_breadth-first_traversal.svg