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>