hdf5 and netcdf write/read support in petsc io + example

This PR... 

 - adds the ability to write and read hdf5 and netcdf when using petsc. The options are passed through a dictionary set in output_options={'format':'hdf5'}.
 - adds one more value to the pickle: file_format, It is key for the xmf writer to figure out what format the data is in. The pkl2xmf writer will allow to load the results directly into paraview. (https://gist.github.com/sanromd/11346554)
 - Add an example of write/read on acoustics_2d_variable.
 - Modification to the warning mechanism in petsc io read routine.