Add null check, fix decryption exception

Should return null if decrypted TempData value is null
Add UserAuthenticationHelper
Port prefix from brockallen / CookieTempData
Merge remote-tracking branch 'upstream/master'