Add support for cardinality constraints logic UFC.  Add regressions in fmf/.  Fix datatypes E-matching bug.  Change defaults : mbqi=fmc, decision heuristic stoponly=false for quantified logics, decision=justification for ALL_SUPPORTED, full-saturate-quant=false.  Minor fix for fmc models.  Add infrastructure to datatypes to prepare for next commit.
minor fix for strings
minor fix for strings
Merge branch 'master' of github.com:tiliang/CVC4
Boolean terms conversion fix for datatypes, fixes a problem Andy discovered on his branch.
Expand definitions in theory datatypes, now has the expected semantics for incorrectly applied selector terms.
Fix the build; --check-proof works for UF but not for the new UFC logic.
setType -> setOfType, resolves bug 556
Better support for building with mingw64; thanks to Nicolas Roche @ Altran for the fix.
Add initial support for co-datatypes.
Fix bug in mbqi=fmc handling theory symbols.  Fix mbqi=fmc models (Bug 557).  Improve datatypes rewrite, make option for previous dt semantics.
Minor refactoring and optimizing.
use internal skolem numbering
simplify mkSkolem naming system: don't use $$

Short summary: By default NODEID is appeneded, just continue doing what you
were, just don't add the _$$ at the end.

Long summary:

Before this commit there were four (yes!) ways to specify the names for new
skolems, which result in names as given below

1) mkSkolem("name", ..., SKOLEM_FLAG_DEFAULT)  -> "name_NODEID"
2) mkSkolem("name", ..., SKOLEM_EXACT_NAME)  -> "name"
3) mkSkolem("name_$$", ..., SKOLEM_FLAG_DEFAULT) -> "name_NODEID"
4) mkSkolem("na_$$_me", ..., SKOLEM_FLAG_DEFAULT) -> "na_NODEID_me"

After this commit, only 1) and 2) stay.

90% usage is of 1) or 3), which results in exact same behavior (and
looking at the source code it doesn't look like everyone realized that
the _$$ is just redundant).

Almost no one used 4), which is the only reason to even have $$. Post this
commit if you really want a number in the middle, manually construct the
name and use the SKOLEM_EXACT_NAME flag.
Allow fmf-bound-int to be set with set-option and via API.
fix warnings in strings/
Eh, what?
Minor fix to avoid rewriting datatype equalities into non-equalitiers, as required.  Add APPLY_UF to congruence types to avoid model construction bugs.
Add --inst-max-level=N option for Kshitij.  Support define-const command in Smt2.
Compute care graph for datatypes.  Preliminary results show 20x speed up on larger problems.  Improve datatypes rewriter.