fixed assert problem with tx getting indexed twice. see output below for debug logs.

Problem: when a reorganization happens, the tx gets resubmitted to validation in
the pool. if during the interim the same tx was in the queue and gets processed
by store() first, then it will successfully be included in the pool and the
indexer will index is again (without the tx being deindexed when removed from
the pool).

there are multiple strategies to take, but i've opted here for the simplest
implementation in line with http://www.jwz.org/doc/worse-is-better.html
from now on, when a tx is removed from a pool during a reorganization, the
confirm handler is called with the error_code set to error::blockchain_reorganized

--------------------------

DEBUG [session]: Transaction inventory: 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017
DEBUG: transaction_pool::exists(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: DEBUG: transaction_pool::do_exists(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::store(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::validate(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::do_validate(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)

DEBUG [session]: Transaction inventory: 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017
DEBUG: transaction_pool::exists(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::do_exists(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::do_exists(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::store(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::validate(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::do_validate(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::validation_complete(Success, unconfirmed(0), 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG:   tx OK passed
DEBUG: wrap_handle_validate ec = Success
DEBUG [transaction_pool]: txpool::store() [421 / 2000]
DEBUG: transaction_indexer::index(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
INFO: Accepted transaction: 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017
DEBUG: transaction_indexer::do_index(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG:   0  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   1  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   2  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   3  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG [network]: r: inv (109 bytes)
DEBUG:   4  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   5  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   6  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   7  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   8  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   9  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   10  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG [network]: r: inv (37 bytes)
DEBUG:   11  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   12  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   13  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   14  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   15  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   16  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   17  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG [worker]: Sending heartbeat
DEBUG [worker]: Received heartbeat
DEBUG:   18  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   19  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   20  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   21  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   22  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   23  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   24  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   25  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   26  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   27  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   28  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   29  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   30  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   31  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   32  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   33  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   34  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   35  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   36  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   37  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   38  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   39  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   40  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   41  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   42  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   43  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   44  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   45  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   46  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   47  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   48  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   49  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   50  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   51  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   52  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   53  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   54  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   55  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   56  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   57  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   58  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   59  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   60  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   61  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   62  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   63  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   64  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   65  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   66  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   67  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   68  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   69  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   70  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   71  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   72  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   73  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   74  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   75  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   76  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   77  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   78  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   79  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   80  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   81  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   82  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   83  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   84  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   85  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   86  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   87  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   88  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   89  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   90  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   91  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   92  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   93  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   94  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   95  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   96  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   97  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   98  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   99  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   100  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   101  1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
DEBUG:   0  199dyH3r7kYHMjiqHhZdRnVy4rZRBSVQn9

---------------

DEBUG: transaction_pool::resubmit_all()
...
DEBUG:   re-storing 5c20bf9ac478df401302b02325ea535d18b863b8125c6e0805c758631d07c839
DEBUG: transaction_pool::store(5c20bf9ac478df401302b02325ea535d18b863b8125c6e0805c758631d07c839)
DEBUG: transaction_pool::validate(5c20bf9ac478df401302b02325ea535d18b863b8125c6e0805c758631d07c839)
DEBUG:   re-storing 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017
DEBUG: transaction_pool::store(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG: transaction_pool::validate(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG:   re-storing ...
...

DEBUG: transaction_pool::do_validate(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)

...

DEBUG: transaction_pool::validation_complete(Success, unconfirmed(0), 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
DEBUG:   tx OK passed
DEBUG: wrap_handle_validate ec = Success
DEBUG [transaction_pool]: txpool::store() [23 / 2000]
DEBUG: transaction_indexer::index(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)
INFO: Accepted transaction: 4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017
DEBUG: transaction_indexer::do_index(4a9dfa9d8cef865e166cd6e55e3558cd600bd863c449251ec0c5bcaa24603017)

***** Internal Program Error - assertion (index_does_not_exist(payaddr, point,
spends_map_)) failed in void libbitcoin::transaction_indexer::do_index(const
libbitcoin::transaction_type&,
libbitcoin::transaction_indexer::completion_handler):
transaction_indexer.cpp(98): Transaction is indexed duplicate times!
Abortado (`core' generado)