NFSv4: Cache NFSv4 open stateids for the lease period after close

NFSv4 rfc states that -

 --->
 9.10.1. Close and Retention of State Information

 Since a CLOSE operation requests deallocation of a stateid, dealing
 with retransmission of the CLOSE, may pose special difficulties,
 since the state information, which normally would be used to
 determine the state of the open file being designated, might be
 deallocated, resulting in an NFS4ERR_BAD_STATEID error.
 Servers may deal with this problem in a number of ways. To provide
 the greatest degree assurance that the protocol is being used
 properly, a server should, rather than deallocate the stateid, mark
 it as close-pending, and retain the stateid with this status, until
 later deallocation. In this way, a retransmitted CLOSE can be
 recognized since the stateid points to state information with this
 distinctive status, so that it can be handled without error.
 When adopting this strategy, a server should retain the state
 information until the earliest of:

 o Another validly sequenced request for the same open-owner, that is not a retransmission.

 o The time that an open-owner is freed by the server due to period with no activity.

 o All locks for the client are freed as a result of a SETCLIENTID.
 <---

 So, to provide greater assurance and detect replayed CLOSE ops, we chose
 to extend stateid lifetime. Also retaining state_ids extend the life of
 open_owner as well. This will help us in resuing the same open_owner incase
 of reOPEN ops within the lease period.

Signed-off-by: Soumya Koduri <skoduri@redhat.com>