tpm: moved put_device() to tpm_chip_unregister()

Moved put_device() from tpm_unregister_hardware() to
tpm_chip_unregister() as it was in the wrong place.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
tpm: added tpm_chip_free()

tpm_chip_free() does the opposite of tpm_chip_alloc(). It is
cleaner to do this than compose both into tpm_chip_unregister().

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
tpm: fix unwinding in tpm_crb.c

tpm_crb should not call put_device() nor kfree() directly. Instead
tpm_chip_free() should be called.

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