Add a category on NSCalendar to cache the result of -currentCalendar.

-currentCalendar is an expensive method to call and was making up a large percentage of the time spent loading Dining data.
Add a category to cache for NSDateFormatters, since they're expensive too.

Also, make this and the NSCalendar cache thread safe.
Use a cached NSDateFormatter in RetailDay.
Rename +[DiningDietaryFlag flagsFromNames:] to flagsWithNames:
Switch to an NSOperationQueue for loading Dining data.

Pull DiningDietaryFlag fetching into DiningData from DiningMealItem to speed up parsing.
Merge branch '3.4-dev' of github.com:MIT-Mobile/MIT-Mobile-for-iPhone into 3.4-dev