Change the block manager to not touch the WT_ITEM.{mem,memsize} fields
when mapping object into memory, remove the WT_ITEM_MAPPED flag, that
information is now based on WT_DATA_IN_ITEM (if the WT_ITEM.data field
points into the WT_ITEM.mem buffer).  This also simplifies some of the
buffer handling, there's no longer any reason to "clear" WT_ITEM.mem
for mapped objects.

Some calls to __wt_buf_steal() used scratch buffers, which is dangerous,
scratch buffers can include large allocated chunks; remove/replace all
calls to __wt_buf_steal() with __wt_strndup() calls.
Prefer real pointer types over void * when there is no ambiguity.

refs #974
Merge pull request #974 from wiredtiger/map-item-cleanup

WT_ITEM cleanup