Singleton raises TypeError on #new
add assertion that check sizeof(void*) should be 4 bytes when MRB_NAN_BOXING is in use
Check parameters strictly.

calloc in C99 is expected to return NULL when nelem * len == 0.
Merge pull request #1278 from monaka/pr-calloc-improvement

Check parameters strictly.
Merge pull request #1281 from Bovi-Li/singleton

Singleton raises TypeError on #new