Handle zero special case in mod

This was causing a problem with printing numbers in different bases
correctly.
diff --git a/src/bc/num.c b/src/bc/num.c
index 75a0f19..afe585d 100644
--- a/src/bc/num.c
+++ b/src/bc/num.c
@@ -606,6 +606,13 @@
   BcNum c2;
   size_t len;
 
+  if (!b->len) return BC_STATUS_MATH_DIVIDE_BY_ZERO;
+
+  if (!a->len) {
+    bc_num_zero(c);
+    return BC_STATUS_SUCCESS;
+  }
+
   len = a->len + b->len + scale;
 
   status = bc_num_init(&c1, len);