When updating device media size use cached cdevsw pointer.

Using pointer from the cdev directly is dangerous since we have no reference
on it, and it may change any time.  That caused panic if device has gone.

While there, report capacity change only if it really changed.

MFC after:	3 days

(cherry picked from commit 03ea8d9f92f451bbc7fbc3a4d4313c90d3f922cb)

Conflicts:
	sys/cam/ctl/ctl_backend_block.c
Make kernel to update LUN size from the backing storage on configuration
reload also if that size was not specified in the new configuration.

Previously it happened only if size was explicitly changed in config.

MFC after:	3 days

(cherry picked from commit 1ebae729f6959a99d79ece881e4054f6b2a46859)