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

(cherry picked from commit 8d57286e8b38dc17d76f382ae734cf8d9fab32e9)
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)
(cherry picked from commit 6f87bf2925e0ffa0858b519d4700e9a4199e8a7e)