fix(plugins-iter) properly catch errors from the cache callback
fix(plugins-iter) properly catch errors from the cache callback

mlcache does not catch errors coming out from a cache callback via the
traditional second return argument (yet). It only catches Lua errors
thrown by `error()`. This fixes a silent failure when such errors
happen in the plugins iterator, causing the HTTP 500 response to not be
sent.

Additionally, we take advantage of mlcache's native miss cache to remove
the need for a nil sentinel when our plugin query is a miss.

From #3078
Kong/kong,Kong/kong,jebenexer/kong,Kong/kong,Mashape/kong