solve alloy module

Fixes #1.

Basic integration with the Alloy API. Checks that an formula is solvable or not.

Will build upon this to allow user to define custom instances and run against the model. The custom instances will be defined in the same textual language as Alloy uses to describe instances in its visualizer. This text will be parsed into additional Alloy statements that constrain the formula to use the particular instance.

At least, this is just an idea.