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 remote-tracking branch 'origin/master' into cmake