etcdserver: init time.Time only if Expiration > 0

golang's concept of "zero" time does not align with the zero value of
a unix timestamp. Initializing time.Time with a unix timestamp of 0
makes time.Time.IsZero fail. Solve this by initializing time.Time only
if we care about the time.

Fix #1129 
pass Expiration to it instead of Request?