add get_results()
add random solver
pass grid, not results to improved()
fix bug where new random line can't be last line in grid
input goal as list of tuples rather than strings

note, uses eval, potentially dangerous, validate input before using
remove debugging code
start output on new line
remove all debugging output
ignore pyc files
don't output anything unless solved
instead of a complerely random line, make a line with one random swap
loop until solved
make timeout dependent on input size
random chance of deleting line
fix typo
don't automatically run main in solve_knot.py
oops, stop trying to compare function to number
path_drop()
move find_adjacencies() into utility lib
documentation changes