core: [CDI] Introduce CDI for Commands dependencies

introducing the use of the powerfull yet light weld framework for
injecting dependencies to our Command objects.

command object are not EJBs and they have no reason to be ones.

Yet they carry lots of dependencies although they are a cardinal part of
the system they are hard to test.

using weld's tools we can inject dependencies programmaticly, letting
weld figure out how to fulfill all annotated fields.

this means the CommandFactory is responsible for instantiating a new
instance and dependency injection (as long as commands are not CDI
beans)

@See

InjectionHelper
a helper with a refrence to weld's bean manager which
we fullfuill dependecies programmatically with

jboss-deplpoyment-structure.xml
The mechanism jboss uses to define additional mofules/dependencies that
help discover beans inside modules. nessecary for cross-module
resolution (e.g inject a utils/Logger to bll/CommandBase

META-INF/beans.xml
a marker file to signal the deployment scanner to start bean discovery
on the jar/war/ear   (for war file it should be under WEB-INF/beans.xml)

FUTURE (following patches)
* All singletons will move to be @ApplicationScopped beans
* Commands will never use dependecies inside the constructre. all init
goes into @postConstruct method
* No JNDI usage - all can be injected instead
* No EJB beans - unless out use-case is relevant
* create empty META-INF/beans.xml file.
* create default empty consturctor for Backend

Change-Id: I7f604ff91847b698efe84a09f724ba0492a672c1
Signed-off-by: Roy Golan <rgolan@redhat.com>