Warnings

This eliminates all warnings when compiling with 2.10. I enabled -Xfatal-warnings to fix #443, so it will have to be disabled manually to build with 2.11.  Some changes should backport to 2.9, some won't for sure.

For some warnings, I muted them rather than changing the code. Let me know if you'd prefer to go the other way.

@fommil, I see that you added a bounty to #443. Is there a way to redirect it to another issue of your choice? I'd rather it not go to me at all, so I don't have to explain it to the tax man.