safety checks in lightweight client

There were a few places where `predict()` would silently initialize missing inputs as zero. I've replaced this with a `throw std::range_error`. The Athena client will catch range errors and spit out a warning.