index.py: compute the index metadata offset more carefully.
index.py: compute the index metadata offset more carefully.

Previously when reading bupindex.meta (or similar), bup computed the
metadata file offset for it's internal lookup table by just
subtracting the size of a re-encoding of the metadata from file.tell()
after the read.  This works fine until we change the length of the
metadata representation (which we just did); then bup will get the
wrong length from the re-encoded data.

To fix this, do what we should have done originally and capture the
index metadata offset before reading the metadata via tell(), and use
that instead.

Thanks to Mark J Hewitt <mjh@idnet.com> for being the first (known)
victim and for helping track down the solution.

Signed-off-by: Rob Browning <1dc5917c2adeeba13d1ef33dbb40691a1b67cc65@defaultvalue.org>

gevaerts/bup,tjanez/bup,mhoeher/bup,gevaerts/bup,tjanez/bup,mhoeher/bup,pombredanne/bup,ToxicFrog/bup,mhoeher/bup,mhoeher/bup,jbaber/bup,gevaerts/bup,tjanez/bup,ToxicFrog/bup,jbaber/bup,mhoeher/bup,ToxicFrog/bup,ToxicFrog/bup,ToxicFrog/bup,pombredanne/bup,gevaerts/bup,pombredanne/bup,tjanez/bup,pombredanne/bup,mhoeher/bup,pombredanne/bup,jbaber/bup,jbaber/bup,jbaber/bup,gevaerts/bup,pombredanne/bup,jbaber/bup,tjanez/bup,tjanez/bup