build tag file indexes of source code definitions

ctags parses source code and produces a sort of index mapping
the names of significant entities (e.g. functions, classes,
variables) to the location where that entity is defined. This
index is used by editors like vi and emacsen to allow moving to
the definition of a user-specified entity.