Break the 'sample' plugin's monolithic model into several smaller ones

In kimchi the model is always a monolithic class. This is not good from
the point of modulization, and it is not necessary to put everything
into one big model. Unfortunately the problem will not get solved
unless we conduct enormous refactor against the whole controller-model
architecture.

This patch tries to mitigate the problem by firstly splitting the model
class into some smaller ones, than automatically mapping all sub-model
instance methods to a RootModel instance. As a demonstration, this patch
splits the 'sample' plugin's model.

Signed-off-by: Zhou Zheng Sheng <zhshzhou@linux.vnet.ibm.com>
Add test cases for BaseModel

It can be verified by test_plugin, but better to have direct unit
tests.

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>