Create separate model package

For the model interface (abstract class), its implementation and the
protocol I have created a separate package in order to differentiate
them better from the rest.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Refactor and comment general client class

I have refactored the general client class by making all its field
private and generating appropriate getters and setters. Also I have
added complete Javadoc comments to the class.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>