cat: extend cat printer with the method end.

* src/dctc/java/com/dataiku/dctc/command/cat/CatPrinter.java: Need to
  be called at the end of the algorithm. Make the lastest statements.
* src/dctc/java/com/dataiku/dctc/command/cat/HeadCatPrinter.java,
  src/dctc/java/com/dataiku/dctc/command/cat/SimpleCatPrinter.java:
  Adjust to the new interface
* src/dctc/java/com/dataiku/dctc/command/cat/LinumCatAlgorithm.java:
  Call the end method of the cat printer.
cat: Make public the algorithm type

* src/dctc/java/com/dataiku/dctc/command/cat/AlgorithmType.java: The
  new definition is her.
* src/dctc/java/com/dataiku/dctc/command/Cat.java,
  src/dctc/java/com/dataiku/dctc/command/Head.java,
  src/dctc/java/com/dataiku/dctc/command/cat/CatAlgorithmFactory.java:
  Adjust.
head: Rename the variable head -> nbLine.

* src/dctc/java/com/dataiku/dctc/command/Head.java,
  src/dctc/java/com/dataiku/dctc/command/cat/CatAlgorithmFactory.java:
  Adjust. Need it for tail.
cat, tail, head: Write a runner for the algorithm.

* src/dctc/java/com/dataiku/dctc/command/cat/CatRunner.java:
  Uniformize the output.
cat, head: Use the cat runner.

* src/dctc/java/com/dataiku/dctc/command/Cat.java,
  src/dctc/java/com/dataiku/dctc/command/Head.java: Here.
tail: New implementation using CatPrinter interfaces.

* src/dctc/java/com/dataiku/dctc/command/cat/CatAlgorithmFactory.java:
  Implements the factory.
* src/dctc/java/com/dataiku/dctc/command/cat/LastestLineCatAlgorithm.java,
  src/dctc/java/com/dataiku/dctc/command/cat/PartialFileTailAlgorithm.java,
  src/dctc/java/com/dataiku/dctc/command/cat/TailCatPrinter.java:
  Algorithms implementations.
tail: Use the new implementation.

* src/dctc/java/com/dataiku/dctc/command/Tail.java: Here.
utils: Class for exit code.

* src/dctc/java/com/dataiku/dctc/utils/ExitCode.java: Here.
exit-code: Use the object ExitCode.

* src/dctc/java/com/dataiku/dctc/command/cat/AbstractCatAlgorithm.java,
  src/dctc/java/com/dataiku/dctc/command/cat/CatAlgorithm.java,
  src/dctc/java/com/dataiku/dctc/command/cat/CatRunner.java: Don't
  need to re-implement exit code =n= times.
command: Use ExitCode object.

* src/dctc/java/com/dataiku/dctc/command/abs/Command.java: Factorize
  the exit code management.
* src/dctc/java/com/dataiku/dctc/Main.java,
  src/dctc/java/com/dataiku/dctc/command/Cat.java,
  src/dctc/java/com/dataiku/dctc/command/Head.java,
  src/dctc/java/com/dataiku/dctc/command/Mv.java,
  src/dctc/java/com/dataiku/dctc/command/Tail.java,
  src/dctc/test/com/dataiku/dctc/command/CmpTest.java: Adjust.
style: Update.
cat: nbLine from int to long.

(nbLine from int to long, the epic adventure.)

* src/dctc/java/com/dataiku/dctc/command/cat/HeadCatPrinter.java: Need
  to pass to long. When we need to skip we use long (file size are
  stored on long.)
cat: Bytes algorithm.

* src/dctc/java/com/dataiku/dctc/command/cat/BytesCatAlgorithm.java:
  Here.
* src/dctc/java/com/dataiku/dctc/command/cat/CatByteSkip.java: Tell
  how many bytes needs to be skipped.
cat: Use the bytes algorithm instead of the simple cat.

* src/dctc/java/com/dataiku/dctc/command/cat/SimpleCatAlgorithm.java:
  Delete this unused file.
* src/dctc/java/com/dataiku/dctc/command/cat/CatAlgorithmFactory.java:
  Same as simple cat algorithm, but ask to skip zero byte.
tail: new implementation aimed to skip the first bytes.

* src/dctc/java/com/dataiku/dctc/command/cat/CatAlgorithmFactory.java:
  Here. Finish the adventure (int -> long.)
tail: Use the new implementations for byte print.

* src/dctc/java/com/dataiku/dctc/command/Tail.java: Here.