Implemented Semantic Versioning

This includes files being aware of the version of its dependencies and
throwing a warning if they do not match.

I added basic support for generic pin setup. It is untested but should
be able to setup the TRIS and LAT registers.

I also moved the timers initialization to their own files with their own
version control and history. I'm planning on rewriting the existing
initialization code to make calls to pins.c for setting up the TRIS and
LAT registers.