core: fix the hierarchy of memory images removers

The "RAM Snapshots" feature introduced the MemoryImageRemover and
MemoryImageRemoverFromExportDomain classes. The second inherits the
first, taking advantage of common code and making small adjustments that
are required when it comes to operating on the export domain.

We end up with a wrong relationship between the two classes as there is
no relation of "kind of" between them, thus the inheritence is wrong.
This patch fix the hierarchy between them:
1. MemoryImageRemover become an abstract class, containing the common
code for subclasses that remove memory states
2. introduce MemoryImageRemoverOnDataDomain class which extends
MemoryImageRemover and implements the code that is relevant for removing
memory states from data domains
3. The MemoryImageRemoverFromExportDomain now extends MemoryImageRemover
and implements the code which is relevant for removing memory states
from export domains

ImportVmCommand is changed to use MemoryImageRemoverOnDataDomain instead
of using MemoryImageRemover.

Change-Id: Id7cada7b6f9a3356afcac0dd2856d6a02cf1f9fd
Signed-off-by: Arik Hadas <ahadas@redhat.com>