Store line number alongside recipe info.
Error out if any of the arguments to rule()/phony() are invalid.

Closes #3.