Minor handle cleanup/restructuring

@michaelcahill: staring at this code last night, I did some cleanup.

Unless I'm missing something, the only function that should ever be passed a checkpoint handle is `__wt_checkpoint_close`, in the WiredTiger handle close path, and the right thing to do is to deal with checkpoint handles there and nowhere else.   This change is basically a bunch of asserts that we never see checkpoint handles except in that function.