Refactor: Make Hook an abstract class Reduce visibility of Hook and AsynchronousHook to package private. Make Hook an abstract class, defining abstract "execute" methods. Rename the "run" and "submit" methods in SynchronousHook and AsynchronousHook to "execute" to override that defined in Hook. Change-Id: I4f69aeb8cce336a5765d784a2a7e793743a33ad7