Parser to generate dictionary for Tree Compression

- Partial implementation of a compressor for ASTs. Implementation of a parser
which generates a dictionary for the compression, which will then be simplified
and encoded.
- Simplification of the structure of trees used for the compression (new "Node"
case class).
- Implementation of a tree recomposer, which will be used for the
decompression. For now in Plugin.scala. Will require some modifications.
- Tentative implementation of a classic Lzw compression for names (will have
to be updated later, depending of how symbols are handled).
Test which doesn't pass for AST Compressor parser

No comment.
Correction of the intersection algorithm

Patch for the intersection algorithm, which now seems to work,
despite the fact that some subkeys, which should be in the dictionary,
seems to not be in.
Fix Bug Of missing entry in the dict

Fix the bug in Subroot. But still not sure about the orders. Need to verify the .reverse
Cleaning subRoots

Replaced the filter + size by a count
All implicits in a dedicated object

Cleaning of the code, addition:
- Of a RevList type, which makes things clearer, depending of how the list is
(leaves first or root first).
- Of a object (Implicits.scala) dedicated to the implicits classes. Since most
functionality are used in various parts of the plugin to manipulate tree.
Adding tests

I added some tests and asserts in the AstCompressorTest.scala
Merge branch 'master' of https://github.com/aghosn/persistence

Conflicts:
	plugin/src/main/scala/scala/reflect/persistence/AstCompressor.scala
AstCompressor.parse -> Node.computeFreqs

Renaming of the method to parse a Lzw dictionary from a BFS tree to the Node
class.
Change of the package name for LzwCompressor.
Cleaning up

Followed the comments on github to correct the code. Removed the :=: and simplified the Node
Merge branch 'master' of https://github.com/aghosn/persistence
Corrected the correction

So corrected the equality
TreeTpe -> AstTag

Since Tpe is used for type inside the complier, we changed this name.
NB: TreeTag is already used by Global.
Merge branch 'master' of https://github.com/aghosn/persistence
Constant in a separated list.

To add redundancy to the ASTs, Constants are stored in a separated list. They
will have their own compressor. This also simplifies the compression algorithm
for ASTs.
Corrections

Corrected the null (but I think I missed some of them) and the empty line between package and import
AstDict -> NodeDict

Renaming the AsDict according to the choice made
Modification for PR based on comment

apply(node: Node): Unit -> apply(node: Node) = ???
AstCompressor: removal of unused import
AstTag -> NodeTag
Removal of extra empty lines in AstNode
Removal of unused one-liner
AstNode.scala -> Node.scala
Implicits.scala -> Enrichments.scala
ListTakeAndSplit -> RichList
Nil for selections in the recomposed tree
Check for out of date comments
Merge pull request #6 from aghosn/master

 Parser to generate dictionary for Tree Compression