Add final modifiers
Use SparseArray instead of double HashMap to reduce application's memory footprint.

Also code cleaning, comments, performance improvements.
Note 1: one HashMap is still needed as a SparseArray doesn't have any
keySet() method for our mSections array
Note 2: A bug with the last separator from the penultimate section still
has to be fixed (tablet only)