Add wrappers needed to use JFileChooser through RMI.

The classes are just wrappers to the corresponding library
classes, they just provide a "Remote" interface and
separate implementation needed to use them with the java
RMI system.

Classes implemented following the post at
https://community.oracle.com/thread/1178301
Restructure the inheritance of classes used to communicate.

An action requested from the client to the server is represented
by the Action interface.
An action can be a (set of) shell commands, in which case it is modelled
by the ShellAction interface, or a request directed to the server
itself, in which case it is modelled by the ServerAction class.
Both ServerAction and ShellAction implement Action.

The response to an action is represented by an AbstractResponse
object.
The response to a ServerAction will be an instance of ObjectResponse,
while the response relative to a ShellAction will be of type
ShellResponse.
Both ObjectResponse and ShellResponse extend AbstractResponse.
Adapt code to use the new classes for messaging.
Move all the communication-related classes inside the communication
package.
Merge pull request #1 from OmbraDiFenice/feature-clien_server_communication

Feature client server communication