Initial pattern analysis algorithm.

This commit adds pattern(), a recursive function for finding patterns in
data according to the data model in libleornian_memory.h. The current
implementation is incomplete, notably lacking the following:

- Position patterns.
- Persistent pattern storage.
- Statement streams (currently only singular statements are
  constructed).
- Use of memories to solve new problems.
- Load distribution across multiple threads and hosts.
- Pattern duplication.