A different take on empty APS

Hey @nathany and @bdotdub,

Here is a slightly different take on @nathany's solution to timehop/apns#5 in timehop/apns#14.

It:
* Foregoes making APS a pointer
* Foregoes Nilling that pointer selectively

At the cost of:
* More lines of code

And remains neutral on:
* `isZero`

Just another idea. I think it's bigger, but a little more declarative, with no clever trick.

Tests really helped me @nathany, thanks!