Add caching for JSON feed, fix no tags/categories notice

This pull request accomplishes two things:

1. Cache the generated JSON array before output. We need to use this plugin on a high traffic website; this will help us keep the server load down. The cache is flushed whenever save_post is fired or a term is created, edited, or deleted.

2. Fix notices thrown when there are no tags/categories. Casting false to an array results in array( 0 => false );

Please let me know if you have any questions. I think the caching addition really brings a lot to this plugin.