Add getModelDictionary, further improving #80

This is about improving programming with models returned, as described
in #80. Added two new functions:

getModelDictionary: for sat/prove calls
getModelDictionaries: for allSat calls

That lets the user receive a String -> CW map, further giving access to
the model as returned by the SMT solver. Together with the functions
exported from Data.SBV.Internals, there’s quite a bit of power for the
user to extract these values and do a fair bit of programming.

Of course, the utility of this remains to be seen, as no-one has tried
doing serious programming this way. We might end up modifying the API a
bit and/or export further functions as necessary.