ConciseModelPersistence: (a) structured debug info (keep properties/links together with their concepts; (b) debugInfo can serve as index registry, with references from nodes to meta-objects being serialized as indexes of debugInfo elements rather than ad-hoc id concatenation; (c) nodeInfo, which is truly meta-level info, kept in a single place, the one dedicated to keep meta-model stuff; (d) implicit usedLanguages are of no use, given the registry that replaced debugInfo keeps all languages actually in use; (e) utility classes structured a bit better to keep relevant read/write pieces together rather than scattered across few places.
ConciseModelPersistence: optimization to import own structure model to shorten references doesn't work for a long time. import to self is redundant as local references are saved without using any import
ConciseModelPersistence: turn concise on by default, re-save all models. In numerous cases, model imports were updated to remove duplicates and redundant self imports
ConciseModelPersistence: rebuilt all models so that generation hash reflects new persistence.
ConciseModelPersistence: NPE in ConvertToBinaryTask - debug registry has not been filled with a concept name yet. Use ConceptInfo as it was deemed to.
ConciseModelPersistence: NPE in ConvertToBinaryTask - looks like ConvertToBinaryTask works without ConceptRegistry initialized, hence new IdInfoCollector implementation fails when collecting meta-info.
 Reverted to old IdInfoCollector to be used in BinaryPersistence to get us to the state it was prior my change. However, this doesn't solve the problem - models converted to binary that way still get no correct conceptScope, conceptKind or 'ordered' attribute of links (i.e. anything retrieved from ConceptDescriptor) LightModelEnvironmentImpl doesn't help as it's not initialized during model read.
ConciseModelPersistence: move all id encoding into a single utility class, IdEncoder, to facilitate discovery and to allow alternations.
validateImplicitlyUsedLanguages() gone as they are not written as part of model imports (rather part of meta-registry)
Header's optional properties are handles as full-fledged xml elements to address concerns about invalid property name/values, and to facilitate parsing with sax language (doesn't support arbitrary xml attributes).
ConciseModelPersistence: compact NodeId
ConciseModelPersistence: support navigation to node with new, compact nodeId
ConciseModelPersistence: use MetaAdapterFactory instead of direct new, respect potential uses of DebugRegistry and fill it like original v9 does.
Merge remote-tracking branch 'origin/master' into 3.2/artem/default

Conflicts:
	core/kernel/kernelSolution/jetbrains/mps/kernel/model.mps
	core/persistence/models/jetbrains/mps/smodel/persistence/def/v9.mps
	core/persistence/source/jetbrains/mps/smodel/persistence/def/v9/IdInfoCollector.java
	core/persistence/source_gen/jetbrains/mps/smodel/persistence/def/v9/trace.info
	languages/languageDesign/classLike/languageModels/editor.mps
	languages/languageDesign/classLike/languageModels/typesystem.mps
	plugins/console/lang/blCommand/languageModels/typesystem.mps
	plugins/migrationAssistant/solutions/component/models/jetbrains/mps/ide/migration.mps
	plugins/migrationAssistant/solutions/component/models/jetbrains/mps/ide/migration/wizard.mps
	plugins/migrationAssistant/solutions/component/models/jetbrains/mps/migration/component/util.mps
	plugins/mpsmigration/solution/jetbrains/mps/ide/mpsmigration/migration32.mps
ConsiceModelPersistence: compact node id for references between nodes; encoding/decoding of nodeid is superfluous (always have index separator char); shorter xml elements.
Merge branch 'master' into 3.2/artem/default
Merge remote-tracking branch 'origin/master' into 3.2/artem/default
Merge remote-tracking branch 'origin/master' into 3.2/artem/default
fix diff test
Merge remote-tracking branch 'origin/master' into 3.2/artem/default
Merge remote-tracking branch 'origin/master' into 3.2/artem/default