canonicalized builtin data structures
renamed Term#hasCell to Term#isMutable; fixed BuiltinMap/Set/List#computeMutability()
reimplemented KSequence without using persistent data structure for now; cleaned up useless methods
fixed KSequence#isConcreteCollection
reimplemented KList
reimplemented CellCollection
updated Guava library to 17.0 to get a fix in the api of Multimaps
fixed failing prover tests
fixed a bug introduced during refactoring
Merge branch 'master' into canonicalize-collections-in-builder-pattern-part1

Conflicts:
	src/javasources/KTool/src/org/kframework/backend/java/symbolic/PatternMatcher.java
	src/javasources/KTool/src/org/kframework/backend/java/symbolic/StepRewriter.java
Additional Javadoc
Refactor isSubsort into syntactic and semantic check.

The previous Production.isSubsort method would consider
also productions with an explicit label to be subsort productions.

This commit renames isSubsort to isSyntacticSubsort, and
extracts the then-common pattern
  (prod.isSyntacticSubsort() && prog.getKLabel() == null)
to a new Production.isSubsort method.
A few other calls were changed from isSyntacticSubsort to isSubsort
when a local change could preserve the exact behaviour.
Change isSyntacticSubsort to isSubsort other places

Changes isSyntacticSubsort to isSubsort in places
where it is not a pure refactoring but the semantic
version of the subsort check seems more appropriate.
Fix empty lists under cells and rewrites

The AddEmptyLists visitor was only wrapping items into
single-element lists if they appeared as arguments to a TermCons,
but cells and rewrites are also contexts that can demand a list.
Split semantic and syntactic subsort in Context

The subsorts member of Context was populated and used extensively
by the parser to represent the syntactic relation of a term of
one sort being legal in the concrete syntax where one of the other
is expected. In particular, this considers list elements subsorts
of the list type, and a production consisting of a single nonterminal
produced a subsort relationship whether or not it was labeled.

Unfortunately, other passes used this information from the context
as if it was the semantic subsorting relationship.
This commit splits the subsort information in Context into a syntactic
and semantic relation with independent accessors, changes
CollectSubsortsVisitor to populate both, and calls the appropriate
version in various places.
update z3 to snapshot dependency (we may have further upgrades before next release)
fix inconsistency in build system for snapshot dependencies
Merge branch 'master' into canonicalize-collections-in-builder-pattern-part1

Conflicts:
	src/javasources/KTool/.classpath
	src/javasources/KTool/buildjava.xml
Merge pull request #933 from yilongli/canonicalize-collections-in-builder-pattern-part1

Canonicalize collections in builder pattern
Merge pull request #944 from kframework/subsort-fixes

Subsort fixes