[#1078] package_show performance part three

A separate pull request for the third part of work in #1079 plus fixes (8.2x improvement for our site, 5.0x improvement without any plugins)

This PR allows package_show to return a LazyJSONObject when the context includes return_type='LazyJSONObject'. This object behaves like a dict but avoids calling json.loads and json.dumps unless absolutely necessary. A LazyJSONEncoder is added as a fall-back within the api controller for LazyJSONObjects nested anywhere within the return value data.