Improve getrevision.sh.

 - remove bashism.
 - simplify some git-related code.
 - improved parameter and error handling.
 - additional -d/--date action which is similar to the timestamp action.
 - support for an optional path parameter.
 - there is only one sane time format.
 - and only one sane date format too.
 - vastly improve git_url() to print the correct remote url and
   "nearest" branch.
 - remove username from svn url.
 - add "-dirty" to local revisions if there are uncommitted changes.
 - indicate in local revisions how many git-only commits were done
   since branching from upstream svn.
 - fix svn_revision() fallback to svn info and remove git-svn.
 - print leading r in script instead of hardcode it in the makefile;
   no more "0.9.7-runknown".
 - make retrieving the upstream revision work even in cloned git-svn
   repositories.
 - more abstractions and helper functions.
 - less fragmentation of actual functionality.

Signed-off-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at>
Generate more detailed version information.

Signed-Off-By: David Hendricks <dhendrix@google.com>
Signed-off-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at>