core, engine: Architecture dependent commands

This patch introduces a basic set of classes to isolate part of the
code that must behave differently on each supported CPU architecture.

The change #18622 has an example of how it can be used to keep
architecture dependent code maintainable and separated from the rest
of the main logic of each class.

Change-Id: Id930154a05107e94b14710b7e343951b21f00e28
Signed-off-by: Vitor de Lima <vitor.lima@eldorado.org.br>