Implement Field*::output() methods.

- do not work due to circular dependency of header files
  need split output.h. But rather in separate commit.
Move declaration of OutputTime into separate file.

- needed to avoid circular inclusion with fields/field.hh
- add explicit instantintiation of OutputData class template
- io/* source files into coupling library
Add FieldValue<...>::mem_ptr() method

- this allows copy of raw data, to a storage, namely
  it is necessary in output
Output for general field return type.

- reorganize daclaration of OutputTime in output_time.hh
  leaving just public interface in public section and move
  it to beginning
- reimplement compute_field_data:
   - make it proper member of OutputTime class
   - use modified OutputData class template to compute values for any
     field return value

- simplify output classes for particular formats, try to support vector
  and tensor data, need some tests

- rename Output::Time:RefType to DiscreteSpace
- add const at() method to FieldValues
- darcy_flow ... add missing include of xio.h
Merge branch 'JH-output' into JB_output_fields