add Revision.equals()

Currently <code>getSha1()</code> may return null in the case of GitSCM (see the check in <code>getSha1String()</code>). I would agree that the usage of null SHA1 should be prohibited, but such breaking change may impact many users.

My proposals:
* Do not throw any exceptions at the current stage
* Properly annotate/document all SHA1-related methods withing Git plugins
** Constructors may require non-null objects
** getSHA1() should require the check for null
* Make a 1-year timeout (or something like that) before introducing exceptions