device: add DEVICE_DECLARE()
device: add DEVICE_DECLARE()

If an init or config function needs to configure a static interrupt or
otherwise do something that requires a build time reference to
a device with DEVICE_GET(), there is a dependency issue that so
far is usually resolved with a forward prototype of the init function.

In addition, there currently isn't a good way to declare a device in
a header so that DEVICE_GET() can be used in a different C file.

This patch should resolve both of these problems; the data structure
defined for the device is no longer static (the names have to be unique
anyway), and in cases where we need a forward declaration so that
DEVICE_GET() can be used, we have a new DEVICE_DECLARE() macro which
does this.

Change-Id: Ie8d53d0c344f61a130c735c86473562820190d70
Signed-off-by: Andrew Boie <aab045b28152628be6af0e556050d0381fd0a34d@intel.com>

zephyriot/zephyr,nashif/zephyr,holtmann/zephyr,zephyriot/zephyr,bigdinotech/zephyr,zephyrproject-rtos/zephyr,ldts/zephyr,tidyjiang8/zephyr-doc,nashif/zephyr,finikorg/zephyr,erwango/zephyr,runchip/zephyr-cc3200,coldnew/zephyr-project-fork,mbolivar/zephyr,runchip/zephyr-cc3200,runchip/zephyr-cc3220,nashif/zephyr,galak/zephyr,bigdinotech/zephyr,32bitmicro/zephyr,GiulianoFranchetto/zephyr,mirzak/zephyr-os,kraj/zephyr,GiulianoFranchetto/zephyr,explora26/zephyr,holtmann/zephyr,pklazy/zephyr,erwango/zephyr,pklazy/zephyr,punitvara/zephyr,aceofall/zephyr-iotos,nashif/zephyr,Vudentz/zephyr,kraj/zephyr,zephyrproject-rtos/zephyr,kraj/zephyr,galak/zephyr,ldts/zephyr,runchip/zephyr-cc3220,coldnew/zephyr-project-fork,rsalveti/zephyr,rsalveti/zephyr,mbolivar/zephyr,tidyjiang8/zephyr-doc,zephyriot/zephyr,Vudentz/zephyr,fbsder/zephyr,holtmann/zephyr,GiulianoFranchetto/zephyr,holtmann/zephyr,coldnew/zephyr-project-fork,erwango/zephyr,32bitmicro/zephyr,tidyjiang8/zephyr-doc,finikorg/zephyr,fractalclone/zephyr-riscv,bboozzoo/zephyr,sharronliu/zephyr,finikorg/zephyr,aceofall/zephyr-iotos,runchip/zephyr-cc3220,holtmann/zephyr,bigdinotech/zephyr,ldts/zephyr,fractalclone/zephyr-riscv,sharronliu/zephyr,sharronliu/zephyr,mbolivar/zephyr,32bitmicro/zephyr,32bitmicro/zephyr,aceofall/zephyr-iotos,erwango/zephyr,coldnew/zephyr-project-fork,pklazy/zephyr,aceofall/zephyr-iotos,Vudentz/zephyr,bboozzoo/zephyr,pklazy/zephyr,tidyjiang8/zephyr-doc,runchip/zephyr-cc3200,fractalclone/zephyr-riscv,runchip/zephyr-cc3200,fractalclone/zephyr-riscv,GiulianoFranchetto/zephyr,finikorg/zephyr,punitvara/zephyr,Vudentz/zephyr,zephyrproject-rtos/zephyr,fbsder/zephyr,zephyrproject-rtos/zephyr,bboozzoo/zephyr,runchip/zephyr-cc3200,ldts/zephyr,galak/zephyr,sharronliu/zephyr,rsalveti/zephyr,explora26/zephyr,pklazy/zephyr,explora26/zephyr,bigdinotech/zephyr,explora26/zephyr,explora26/zephyr,mirzak/zephyr-os,zephyriot/zephyr,coldnew/zephyr-project-fork,bboozzoo/zephyr,fractalclone/zephyr-riscv,sharronliu/zephyr,nashif/zephyr,punitvara/zephyr,rsalveti/zephyr,zephyriot/zephyr,mbolivar/zephyr,kraj/zephyr,erwango/zephyr,ldts/zephyr,fbsder/zephyr,galak/zephyr,aceofall/zephyr-iotos,zephyrproject-rtos/zephyr,punitvara/zephyr,kraj/zephyr,Vudentz/zephyr,runchip/zephyr-cc3220,finikorg/zephyr,mirzak/zephyr-os,bboozzoo/zephyr,GiulianoFranchetto/zephyr,mirzak/zephyr-os,galak/zephyr,32bitmicro/zephyr,rsalveti/zephyr,punitvara/zephyr,bigdinotech/zephyr,mirzak/zephyr-os,mbolivar/zephyr,tidyjiang8/zephyr-doc,fbsder/zephyr,Vudentz/zephyr,runchip/zephyr-cc3220,fbsder/zephyr