Add the typedefs to QSharedPointer and QWeakPointer to make template usage simpler.
Add the typedefs to QSharedPointer and QWeakPointer to make template
usage simpler.

For example, this allows writing code like:

template <class Pointer>
typename Pointer::pointer getPointer(constPointer &p)
{ return p.data(); }

and that code will work for both QSharedPointer and QWeakPointer.

Reviewed-by: Harald Fernengel

Also add an operator- to make pointer operations possible.

igor-sfdc/qt-wk,radekp/qt,igor-sfdc/qt-wk,radekp/qt,radekp/qt,pruiz/wkhtmltopdf-qt,pruiz/wkhtmltopdf-qt,pruiz/wkhtmltopdf-qt,radekp/qt,radekp/qt,pruiz/wkhtmltopdf-qt,igor-sfdc/qt-wk,igor-sfdc/qt-wk,igor-sfdc/qt-wk,pruiz/wkhtmltopdf-qt,igor-sfdc/qt-wk,pruiz/wkhtmltopdf-qt,radekp/qt,igor-sfdc/qt-wk,pruiz/wkhtmltopdf-qt,radekp/qt,pruiz/wkhtmltopdf-qt,igor-sfdc/qt-wk,radekp/qt,igor-sfdc/qt-wk,radekp/qt,radekp/qt,pruiz/wkhtmltopdf-qt,pruiz/wkhtmltopdf-qt,igor-sfdc/qt-wk,pruiz/wkhtmltopdf-qt,igor-sfdc/qt-wk