Add cs_main lock to name_list.

Lock cs_main in name_list.  This prevents a potential deadlock, which
may occur when name_list is called in parallel to syncing.  name_list
used to lock the wallet and then wait on BDB's internal lock, while
updating the wallet with incoming blocks (CWallet::GetDebitInclName)
tried to lock cs_mapWallet while the DB was locked from the syncing
thread.
Disable name_list shortcut for pending names.

For names that have a pending wallet transaction, always do the "full
check" in name_list and don't try to shortcut them when all outputs are
spent.  Even the pending tx counts as "spending" of the outputs, while
it doesn't yet show up later for name_list, so that the name effectively
goes missing.
Improve performance of name_list.

Do some performance improvement for name_list:  Cache decoding of
name_update transactions in the CWalletTx class (in memory only) and use
the name index to find out about a tx's height instead of loading the
block header.
Merge pull request #71 from domob1812/name-list-master

Fix name_list.

Signed-off-by: MithrilMan <red.angel@libero.it>