Tests - Update syntax and improve implementation

Update syntax, style, documentation and contracts for the testing suite.

Replace Assigment attempt with object test.
USe across loops instead of traditional loops.
Use a better implementation for converters.
The `else' part is reacahed when the parsing failed, i.e. if a field is missing or a field has an unexpected type.

Since the json source is an input, I think that there is two ways:
- Make the result detachable, means optional.
- Raise an exception if it is failing.

I adopted the first approach, but maybe it is not the better.
The problem with exception is that it is disable and then a detachable Result is needed...

I noted a mistake, please tell me if I'm right:
Sicne {EJSON}.object can raise an exception, a rescue clause should be added here and set Result to Void?
```eiffel
do
	if not retried then
		-- above code
	end
rescue
	retried := True
	retry
end
```