Merge branch '2.x' into feature/2.x-optimizations
Allow load_pod to use cached data

Fixes #2145
Add caching to lookup_related_items
Fix typo
Revert "Allow load_pod to use cached data"

This reverts commit 7e9dbab44d4468027d7c6ad6a087bfa717848746.
Merge branch '2.x' into feature/2.x-optimizations

Conflicts:
	classes/PodsAPI.php
Merge branch 'feature/2.x-optimizations' of github.com:pods-framework/pods into feature/2.x-optimizations
Adjust caching in load_fields

Simplify the caching logic and json_encode is about twice as slow as serialize
Let fetch set/get cached data

This looks like the @todo was also fixed from PR #2399
Ensure that the cache is only set once
Define $already_cached

Working on too many branches at once, not everything makes it over
Allow select to work with expires set

I'm not sure this has ever worked properly.  If get_object_vars is called on something other than an object it will return either null or false depending on php version, so the cache key looked up would always be the same regardless of actual data
Add workaround for WordPress bug

wp_cache_set will not copy arrays of objects properly.  I've submitted a patch to them to make that happen properly but in the meantime this will do it for Pods and should be backwards compatible if they accept my fix
Uncomment code that wasn't supposed to be

Too many branches going on and too much testing
I need to tell them apart
Don't lookup one extra related field

This unset( $lookup[ 0 ] ); showed up when this whole code was reworked, and then later on the foreach was added as a bugfix to add the
value back in but at the same time it adds additionals
Merge branch 'feature/2.x-optimizations' of github.com:pods-framework/pods into feature/2.x-optimizations
Comment out some code that is slow, use the alternate

Creating new pods objects is expensive
Allow relationship queries to be cached
Keep Pods->id() from calling field unless it has to

Inspired by something @pglewis said