make Globals more like Dats

Implement trivial indexing and duplication on Global so it can be used
in places where a Dat is used. This is needed to make the Real
function space work in Firedrake.
ensure the data is up to date
Merge pull request #389 from OP2/iterable_globals

* iterable_globals:
  ensure the data is up to date
  make Globals more like Dats