Provide compatibility constructor for C++03 clients

Clients written to the C++03 standard (most of opm-core, really) do
obviously not use shared_ptr, and most likely takes references with
an implicit lifetime guarantee instead. Converting everything to
shared_ptr is a task for the long run.

This constructor provides the conversion routine that is most likely
to be used: To rely on the lifetime through convention, and then
wrapping everything with share_obj.

It should be considered deprecated out of the box; as soon as you
have the chance to use shared_ptr instead, you should do so.
Use float instead of double keywords

ERT requires the type of the keywords that are passed to the grid
allocation routine to be float (and it is checked - causes abort if
there is a mismatch!)
Data copying takes an iterator, not necessarily vector
Write pressure and saturation as single-precision
Use timestep number as is

Why add one? They are already one based.
Add timesteps to a list and write at once in summary

Instead of having each timestep available just locally in the
writeTimeStep method, which will free the memory and create a
corruption error, keep all timesteps on a free list in the summary,
and do all the writing in the destructor there (the memory of the
individual timesteps will have to linger on anyway).
Eliminate redundant timestep class

Since all construction should go through the wrapper method, and the
class otherwise just handed everything down to the base class, we might
as well inline everything in there to avoid someone starting to make
their own objects of this type.
Writing output should not change the state

Therefore we take const parameters across the board. (This is a
follow-up to the patch which declared the UnstructuredGrid const).
Use all uppercase in filenames

ERT already does the conversion for *some* of the files; we might as
well convert all the names so that there is no confusion.
Convert timestep numbers to correct base