[CORE] Make reset and shutdown board independent

Having arch_board_reset() and arch_board_shutdown() forces
reset and shutdown operations to be board specific which is
not always true because some host might have reset & shutdown
as part of some device or watchdog or timer or GPIO or ...

To make reset and shutdown more flexible we provide APIs for
registering reset and shutdown callbacks.

Signed-off-by: Anup Patel <anup@brainfault.org>