New helper class for PostLocation

Instead of encapsulating the lat/lng behavior in the Post model, we can
move it to its own class. Includes matching tests to catch invalid location values.
Utilize new PostLocation class for Posts

Replace all instances where latitude and longitude were being
manipulated directly and replace with the appropriate implementation of
the PostLocation class.
Use supportsLocation method instead of isPage

Makes it more flexible to modify what things support Location in the
future.
Set PostLocation class as Serializable

Because Post is serializable, all its properties must be too. Prevents
fatals when attempting to serialize a Post object.