tpm: use devres for releasing chip memory

Currently different TPM device drivers use different ad hoc
strategies for freeing resources. This patch sanitizes the
division of responsibilities.

The device driver must not clean up struct tpm_chip instance
by itself. That responsibility is moved to the framework.
Device driver must only call tpm_chip_unregister() after
tpm_chip_register().

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>