Dont make variations database requests calls when variations aren't being used

Add check to see if variations are defined and used, when they are not defined and used don't make calls through WordPress for variation terms unless working inside the admin area.  Avoids lots of small empty queries.

Add checks to variation class to avoid walking off the end of internal arrays