Refactor tags and categories

Until now, `Site` maintained a list of tags and categories where each tag or category as associated with the posts that had the tag / belonged to the category. At the same time, `Site#post_attr_hash` produces such a hash.

So to avoid the duplication, this PR removes the special handling of tags and categories in favor of the more generic implementation in `#post_attr_hash`. In case any plugins use `Site#tags` and `Site#categories` (it's never used inside jekyll, except for the tests), I added dummy methods for them that just call `#post_attr_hash`.