MSVC: fix C4146

C4146 (unary minus operator applied to unsigned type, result still
unsigned)
pool: use mrb_malloc_simple instead of mrb_malloc
Make type casts safer.
Add more warning detections