ScaledFont: Add the missing get_extents() method implementation.

Bug #53981 (cheshirekow)
Avoid dereferencing empty std::vector<>s.

* cairomm/context.cc: Check with empty() before using [0] on
  a vector. Apparently gcc allows this, but MSVC (probably correctly)
  does not. This fixes a crash on MS Windows.
  Bug #36020 (Robert Kurjata)
Allow use from Objective-C instead of just allowing building.

* cairomm/fontface.h: Surround the include line in surface.h with
  some directives that undefine nil and then redefine it.
* cairomm/surface.h: This aso undefined nil but this appears to be
  unnecessary.

  Bug #66328
Add Pattern::{set_extend,get_extend}

* cairomm/pattern.{cc,h}: set_extend and get_extend functions apply not
  only to surface patterns, but to linear and radial gradients too.
  Bug #73775
Improve some deprecation comments.
Merge branch 'master' of git://git.cairographics.org/git/cairomm
JOHNE - Re-arrange the order of #include folders to make sure that we look for the current version(s) of any cairomm header files before searching our generic include path (which might result in us pulling in an older version)