Defining a confidence score and a boost_point

Inorder to figure out if an incorrect is potentially a new word or not
we start by figuring out a confidence score. Confidence score would be
explained by the following equation

Cs = n(incorrect)/cardinality * max(edit_ratio)

However, the devil is in figuring out a threshold metric. After multiple
failed attempt at trying to compute the boost point (I don't remember
what it is called, for now let us just call it the boost point, since
that is the point where there is a significant difference in the
confidence scores, kinda like the inflection point in a standard curve
if you will)

This led me to settle on a hardcoded boost point based on my
observation. This should be revisited and fixed better

- This commit also has some refactoring of code and also some additions
  to the redis wrapper
Adding the confidence score distribution plot.

This plot contains a confidence score distribution obtained from the
data that has been trained so far. This should give an idea on how the
confidence score are disitributed and what could possibly be the boost
point. <failed attempt>