BUG 592: Performance improvements to yang.data.api.InstanceIdentifier

- Changed Collections.unmodifiableMap() to ImmutableMap,
  which is faster and safer, since the InstanceIdentifier
  contract requires immutability
- Added hashCode cache, which is safe, since all state
  captured by instance is immutable, from the moment of
  the object allocation.

Change-Id: I4d52af24f58c63ff5870e098b2b5fc9bbb34aec4
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
(cherry picked from commit 3bfe9f1d2ad0a4f7ba880eb6c97d24fbea3e10ba)