Added plumbing for doing semver-check

Utils.SemverCheck contains a bunch of helper datatypes and functions for doing a proper check for correspondence for semantic versioning. For example, there are datatype for API compatibility and a function which considers two JSON-encoded function types and produces their compatibility as a result.

Functions which compare JSON-encoded values build `aeson`'s `Parser`s, which could be run using `parse` function (http://hackage.haskell.org/package/aeson-0.8.0.0/docs/Data-Aeson-Types.html#v:parse)