results must be the same with or without DNA codec

Link: https://github.com/GeneAssembly/biosal/issues/253
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
optimize the encode function of DNA codec

On medium.sh:

Before:
  %   cumulative   self              self     total
   time   seconds   seconds    calls   s/call   s/call  name
  7.19      4.28     0.54  2631473     0.00     0.00  bsal_dna_codec_encode

After:
  %   cumulative   self              self     total
   time   seconds   seconds    calls   s/call   s/call  name
  0.39      9.89     0.04  1278965     0.00     0.00  bsal_dna_codec_encode

Link: https://github.com/GeneAssembly/biosal/issues/240
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
optimize DNA codec decoder

On medium.sh:

Before:
  %   cumulative   self              self     total
   time   seconds   seconds    calls  ms/call  ms/call  name
  7.12      4.82     0.54  3296723     0.00     0.00  bsal_dna_codec_decode

After:
  %   cumulative   self              self     total
   time   seconds   seconds    calls  ms/call  ms/call  name
  0.06     15.41     0.01  2504078     0.00     0.00  bsal_dna_codec_decode

Link: https://github.com/GeneAssembly/biosal/issues/240
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>
optimize store_key and store_index

Link: https://github.com/GeneAssembly/biosal/issues/254
Signed-off-by: Sébastien Boisvert <boisvert@anl.gov>