beZero matcher improvements for NSNumber

I noticed a failing test today for *beZero*, because the subject was an **NSNumber** of `@0` rather than an actual primitive `0` value. I thought it would be good for the matcher to handle both situations, the same was as the *beYes* and *beNo* matchers work for both **KWValue** and **NSNumber**.

I've added tests around the **KWBeZeroMatcher** to check this functionality. At the same time, I made the test fail rather than throw an exception if the subject is nil, and added a description to the failure. Hat tip to @prasannag who I was working with on this.