Robust zero-initialization

Fixes the problem @mbrubake discovered, where a model ill-defined with its unconstrained parameters at zero is allowed to proceed to sampling.  The zero initialization now checks for domain, value, and gradient errors.  Tests added, with the makefile tweaked to compile pathological models.