Fixes the following panic triggered by blob Hive tests:
```
[2c098836] panic: runtime error: index out of range [0] with length 0
[2c098836]
[2c098836] goroutine 902 [running]:
[2c098836] github.com/ledgerwatch/erigon-lib/txpool.MainLoop.func1()
[2c098836] github.com/ledgerwatch/erigon-lib@v0.0.0-20230801100033-1b342f37741d/txpool/pool.go:1565 +0x100f
[2c098836] created by github.com/ledgerwatch/erigon-lib/txpool.MainLoop
[2c098836] github.com/ledgerwatch/erigon-lib@v0.0.0-20230801100033-1b342f37741d/txpool/pool.go:1492 +0x8c5
```
Reverts ledgerwatch/erigon-lib#1050
It causes the error:
`EROR[07-21|21:45:02.806] [txpool] flush is local history err="table:
PoolTransaction, err: mdbx_cursor_put: MDBX_MAP_FULL: Environment
mapsize limit reached"
`
Add a bound the txpool db, rather than leaving it as the default of 2TB.
This is to reduce the page file profile when running multiple nodes from
around 3.5GB per txpool instance.
The current pool map side is set to 512MB - which seems reasonable with
16MB increments
This checking replaces the config processing for bor sprints which has
the following issues:
1. It uses string ordering for blocks which is lexical so does not
handle decimal scale when sorting numbers
2. It parses the config map every calculation - which is expensive
relative to just checking the index order
This is likely not an issue for the existing main net as the map only
has 2 entries and their sort order is coincidentally the same for both
lexical and numeric ordering. Performance is likely also a non issue
compared to the other processing during execution flow.
These changes are intended to support tx indexing where in the
snapshotting process the calc will get called at least twice for each
bor block during 1000's of iterations.