Added time-based sorting of source files and improved versioning.

By default source files are sorted by time stamp with the most recent files compiled first. If find, sort, or cut is unavailable, a fallback option is provided using a recursive version of GNU make's wildcard function (see http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html). Closes #7.

Checks were added so that version macros are only generated when the makefile is used in a git repo that has tags.