exclude undefined properties from persistence

Skip properties with a value of `undefined` when enumerating
properties of an object wrapped in a persistence proxy. This prevents
errors from persistence back-ends which are not able to handle that
value (e.g. RethinkDB).
JSON.stringify handles this case the same way (omitting such properties).
don't modify message object when sending

There is at least one case where GSJS code recycles the object passed
as a message for the client for a different purpose (adding buff
details to the player's events list, which eventually writes this
object to persistence). Therefore, the send function must not modify
the object.
The change in Player.send makes cloning the message object in
Location.send redundant.
Merge pull request #47 from yelworc/trello#34

exclude undefined properties when persisting objects