better preserve the Device UUID

1) preserve the Device UUID across apps and across app reinstalls (but not OS reinstalls) by using the keychain instead of the defaults dictionary
2) transfer any existing UUIDs found in defaults to keychain
3) use existing UUID generation for < iOS 6
4) use identifierForVendor in iOS 6+
Note: Apps using the SDK must now link with Security.framework!