Added interface Cloneable
Added a method to clone a Neuron
Added a clone method test
Added clone method
Added clone method test
Updated add method

Now it will create a copy of the layer when it will be added
Updated addAll method.

Now it will create a copy before add it
Updated addAll method

Now the method will always create a copy of the object before assign it
Updated set method

Now this method will create a copy before set a NeuronLayer object
Updated add method

Now this method will always create a NeuronLayer's copy before add it
Checked a lot of methods.

The next methods was checked to ensure that they will create a copy of
their respecitve arguments before add it to the class:

- addHiddenLayer
- setHiddenLayer
- addOutputNeuron
- setOutputNeuron
- addInputNeuron
- setInputNeuron
Nothing has changed
I removed a lot of test that was reporting wrong results. I will think
how do this kind of test without get a false mistake