Add support for analyzing ruby files

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Improve mechanism to retrieve a commit date

- Old mechanism used a function that first retrieved all
  commits reachable by the revision to find
  a single date then created a commit object only to retrieve
  the commit date

- Instead we limit the git query to return only one commit date
  and avoid a whole lot of wasted cycles

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Change accessor to document metadata

- The latest version of tm provides a new function to access
  the document metadata

- The data structures for storing the document metadata are now
  different and the old method using attr(..) or old
  accessor functions no longer works

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
Refactor function and add ability to get commits by date range

- This function was trying to be too flexible resulting in:
    - many weird combinations of parameters used to call
      the function
    - unnecessarily complicated nested conditionals
    - empty strings intentionally being passed in
    - way too many default parameters some of
      which were not used

- Add mechanism to use a date range to retrieve all commits
  that occur between the specified revisions

- Default behavior is still using the double dot (rev1..rev2)

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>
When revisions are not specified use date ranges

- In the case of no revisions in the configuration file we
  automatically generate the revision windows but the
  follow analysis needs to be performed in terms of dates
  not using the double dot (i.e. rev1..rev2) range

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@siemens.com>