Lists fully removed in favor of dynamic arrays

* Cartesian product now allocates a dynamic array instead of using a
  linked list.
* Added header for the base parts of speech