posts have identifiers, a parent hierarchy and rudimentary searching behavior.

this commit also renames 'post' to 'Post'