Added tags for blog posts and projects

Blog posts/projects have a 1 to many relationship with tags. In this
way, tags can flexibly describe any blog post/project. This is
accomplished with 2 mapping tables that map blogposts/projects to tags:
blog2tag and project2tag.

Added:
* migrations/006_tag.php ~ creates the tag table
* migrations/007_blog2tag.php ~ creates the mapping table that maps blog
posts to tags
* migrations/008_project2tag.php ~ creates the mapping table that maps
projects to tags
* models/tag_m.php ~ the tag model

Changes:
* config/migration.php ~ bumped migration version
* core/MY_Model.php ~ Added functionality for defining subsidiary
relationships and retrieving subsidiary data. This functionality is
available by default through the get function. It leverages the
subsidiary table model for some recursive power, meaning subsidiary
tables can have their own subsidiary tables, and so on.
* models/blogpost_m.php ~ defined blogpost as having subsidiary tag data
* models/project_m.php ~ defined project as having subsidiary tag data
Added functionality for storing subsidiary links

Changes:
* core/MY_Model.php ~ Added functionality for storing subsidiary data
links. Everytime a record is saved, subsidiary link data should be
passed in the following format:

save_data [ subsidiary_table_name ] =
array_of_subsidiary_ids_to_link_this_record_to

The save method will take care of deleting old links and creating new
ones.
Added admin tag functionality

Tags can now be managed through the CMS. Blog posts and projects can now
be associated to tags via checkboxes.

Added:
* controllers/admin/tag.php ~ manages tags
* views/admin/tag/tag_edit_v.php ~ tag edit form
* views/admin/tag/tag_index_v.php ~ tag list view

Changed:
* controllers/admin/blogpost.php
* controllers/admin/project.php
~ added functionality for editing tags. Blog posts/projects can now be
associated to tags via checkboxes in their respective edit forms.
* core/MY_Model.php ~
1. Added mechanism for storing subsidiary links on record save. The
expectation is that the save data must contain arrays of ids for each of
its subsidiary tables. The ids signify rows in the subsidiary table that
we want to link to the row being saved via the map table.
2. Added a mechanism for simulating an ON DELETE CASCADE foreign key
constraint. This allows blog2post and project2post to be cleaned up
automatically when blog posts/projects/tags are deleted.
* helpers/view_processing_helper.php ~ Upgraded vp_buildForm to handle
forms with sections. Sections can be either normal sections or checkbox
sections. In the latter case, checkboxes are displayed inline to
conserve space.
* libraries/AdminController.php ~ Added tag to the admin nav
* models/blogpost_m.php ~ Added blog2tag as a dependent table for the ON
DELETE CASCADE foreign key simulation mechanism. See comment for
MY_Model.php for more info.
* models/project_m.php ~ Added project2tag as a dependent table for the
ON DELETE CASCADE foreign key simulation mechanism. See comment for
MY_Model.php for more info.
* models/tag_m.php ~ Added blog2tag and project2tag as dependent tables
(see above comment).