core: Architecture related checks for VMs and templates

This change introduces architecture related checks during the creation
and modification of VMs, Templates and Pools. These checks include:
* Verifies if the selected template has the same architecture of the
  selected cluster when adding VMs and pools;
* Verifies if the selected cluster has a undefined architecture when
  updating and adding VMs, templates and pools;
* Does not allow VMs to change their clusters if the destination cluster
  has a different architecture.

Change-Id: Ia877dd2d13525de6693883e43d0ca786f77f9310
Signed-off-by: Gustavo Pedrosa <gustavo.pedrosa@eldorado.org.br>
Signed-off-by: Leonardo Bianconi <leonardo.bianconi@eldorado.org.br>
Signed-off-by: Vitor de Lima <vitor.lima@eldorado.org.br>