Bump version to 0.1.3-SNAPSHOT for more development
Cache JSON string after first call to toJSONString()

Upside: performance gain when sending the same message to multiple
players. Downside: JSON becomes inconsistent with internal state if
state changes are made after toJSONString() has already been invoked.
Consider implementing a dirty flag to check if the cached value is
still consistent with the internal state of the builder.