Bug 307889 - [Intro] having "tip of the day" functionality

This is the initial contribution of a Tip of the Day framework to
Eclipse.

It provides a dialog with tips that can be started from the Help menu.
Optionally is is show at IDE or RCP application starts.

Extenders can provide their own tips by implementing a TipProvider.

TipProviders can be added to the tips extension point and/or can be
initialized from a JSon file.

TipProviders can get priority based on an enabled when expression
similar to commands and handlers. For example, EMF tips may be shown
when the modeling perspective is open.

Tips can be created from straight up HTML, hosted on a separate web page
(e.g. Eclipse wiki), created from a Json file or be a full blown SWT
implementation.

Tips can provide actions to enable the user to open a view, set some
preferences or whatever.

The framework is UI agnostic but comes with a separate SWT
implementation.

Examples on how to create a Tips and TipProviders are available.

Documentation is on the wiki: https://wiki.eclipse.org/Tip_of_the_Day

The Tips framework uses null annotations, by default all methods cannot
return null, except if they annotated with @Nullable.

Changes done by Lars in cooperation with Wim

==Wim 16/feb==
* removed annotations in core for now
* Fixed some javadoc

== Lars 16/feb==
Removed the TipThemeManager
Remove TipProvider from the Tip API, the Tip does not need to know its
provider
Tip now require the TipID
Tips hashcode and equals methods are based on summary, providerID and
creation date
Removed the special getImage64 methods and refactored getImage48 to
getImage

== Wim 27 feb ==
Removed json plugin



Change-Id: Ib65e150bdeb5f3f38075d8c6432e5b476bfa064d
Signed-off-by: Wim Jongman <wim.jongman@remainsoftware.com>
175 files changed