Fix bug in the norm==0 case

- Internal checks ON, on Slater casei 5 bands, was causing the code to
  fail the internal consistency tests with CHECK_ALL (linear computation of the trace != tree computation).
- Issue is traced back to compute_block_table_and_bound, called
  from the update_cache method.
  In some (rare) cases, the Matrix of a subnode is in fact 0,
  leading to a norm ==0, hence a -lnorm = Inf, which
  is > double_max, leading to compute_block_table_and_bound routine
  in the update_cache to return -1 instead of the correct result.
  A priori, the idea of the call is that double_max is bigger than any number,
  hence we want no truncation due to the lnorm in the update.
  However, Inf > double_max is true !
- Fix consists in fixing lnorm at its computation :
  if it is not finite (matrix is 0), we put it
  to double_max. Then the test in compute_block_table_and_bound
  is double_max > double_max which is then false, and the update
  proceeds normally.
- commented print shows that this case is rare.
  While we could optimise for that case, (changing the block to -1),
  it seems too rare to be useful.

- Also : added better coloring of the tree : soft_deleted node in green,
  modified in red, unmodified in black as before.
- Commented CHECK_ALL flags in master.