added validation to Post model, and refactored post views to use render partial and provide validation error messages