Fix bug in Deps.forEach() method that was leading to incorrect context passing to callback
Fix bug in DepsItem.extendByCtx() that was leading to incorrect extending of items with tech defined
Full serialization and deserialization of Deps container in serializeFull() and parseFull() methods
Refactor Deps.stringify() method, deprecate Deps.serialize() method, introduce Deps.serializePlain() method to replace parts of deprecated Deps.serialize()
Refactor Deps parse tests to assert internal structure using Deps.serializeFull() method
Canonize bem make tests results for deps.js tech
Introduce Deps.merge() method to merge deps
Canonize legacy `make tests` tests results for `bem create -T css` command
Fix Deps.add() to not add duplicated deps to shouldDeps and mustDeps
Fix Deps.parseFull() to clone item, shouldDeps and mustDeps contents
Introduce Deps.parseDepsDecl() method to hide complexity with different deps formats
Refactor `bem decl intersect` and `bem decl subtract` commands to use Deps.parseDepsDecl() method

This also fixes #385
Refactor `bem decl merge` command to use Deps.parseDepsDecl() and Deps.merge() methods
Canonize legacy `make tests` tests results for `bem build -t deps.js`, `bem decl merge` and `bem decl subtract` commands
Canonize `bem make` tests results (deps.js files)
Cleanup of Deps.getCount() code
Cleanup Deps.subtract() and Deps.intersect() code; add TODOs
Add Deps.flatten() to simply flatten deps into array
Pass context of the deps item as a second argument to the Deps.map() and Deps.filter() callback functions
jsdoc: Mark the only argument to Deps() constructor as an optional