Remove input streaming for variables

Because:

- it it is not symmetric to output streaming
- fails for v.is_nil()
- it is not used anywhere
Improve output streaming for variables

Now to_string() only returns a string indicating the variable type.
It is not used to render the floats anymore because it produces hard
to read values with unnecessary zeroes -- streams provide much better
control about that.

Also, printing a variable now always prints the kind and the id.  While
the id is a "internal" value, it allows to track the evolution of
a variable when logging tableaus or change events on different parts
of the program.

Because the value of the id is private, I changed the test to just test
for the exitance of the << operator.  I hope this is enough.
Add output streaming support for strengths
Add output streaming support for constraints