Redo solving algorithm

Rewrote the solving algorithm from scratch to improve speed and make it
more transparent. Also adds support for solutions that don’t use all of
the numbers.
Cleaned up project.clj file
Gitignore
Changed line ending
Added inline combinatorics library

Split macros out into their own clj file because Clojurescript doesn’t
support them
No big changes