Reconfigure cleanup

@agorrod, @sue -- this is the last piece of #1172.

Now we're merging the configuration strings, I changed the underlying reconfigure functions to error in the case of not-found being returned for a configuration string, because we're supposed to have all of them, all the time, now.

Sue, you agreed to do the review.  (I tried to keep the commits separate so it's not a monolithic chunk.)

Alex, I'm copying you on this one because there were a couple of functions I wasn't sure how to fix. Specifically, this chunk in `__wt_cache_config`:
```
/*
 * If not using a shared cache configure the cache size, otherwise
 * check for a reserved size.
 */
if (!F_ISSET(conn, WT_CONN_CACHE_POOL) &&
    (ret = __wt_config_gets(session, cfg, "cache_size", &cval)) == 0)
        conn->cache_size = (uint64_t)cval.val;
                        
if (F_ISSET(conn, WT_CONN_CACHE_POOL) &&
    (ret = __wt_config_gets(session, cfg,
    "shared_cache.reserve", &cval)) == 0 && cval.val != 0)
        cache->cp_reserved = (uint64_t)cval.val;
else if ((ret = __wt_config_gets(session, cfg,
    "shared_cache.chunk", &cval)) == 0)
        cache->cp_reserved = (uint64_t)cval.val;
WT_RET_NOTFOUND_OK(ret);
```
and pretty much all of `__wt_cache_pool_config`.  I'll try and catch up with you tonight and talk those over.

What was the motivation for the change to send in `session` instead of `conn`?  Many of them appear gratuitous.  It makes the code inconsistent now as all the other `*_destroy` functions still take `conn`.  When should one use `conn` versus `session` when writing a similar internal server?  We either need a big comment somewhere describing when to use one or the other, or consistency one way or the other.  (My vote is consistency)