mcu/nrf5340: Add virtual flash for net core
mcu/nrf5340: Add virtual flash for net core

Idea behind virtual flash is that net core bootloader
can access image embedded inside app core image and
used it just like the image was put in a normal slot.
One image (with embedded image) is a way to make it
easier to manage upgrades just one image to use instead
of two.

For this to work vflash uses IPC GPMEM registers that application
side IPC sets up with image size and location.
Then it just reads data from application flash and present them
to bootloader when needed.
Since embedded image is not stored in normal slot writes and erases are
not effective.
Additionally end of the slot is simulated so MCUBOOT can see that
image is there to be used.

For this to work MCUBOOT build for network core needs to have:
    BOOTUTIL_OVERWRITE_ONLY: 1

This driver also has some workaround needed for optimization.
It checks if current image in slot 1 has same hash as image present
in virtual slot 2 if so it make mcuboot to believe that slot is empty
without actually touching data in application flash.
This would not be needed if application starting on app core was aware that
it is running from just swapped image.
Without this workaround network image would be upgraded at each boot.

mlaz/mynewt-core,mlaz/mynewt-core,mlaz/mynewt-core,mlaz/mynewt-core,mlaz/mynewt-core