Profiles like Geo can be specified as maps and serialize naturally as json

Part of issue #181.

This allows you to write Geo and Weighted profiles using jackson ObjectMapper with no configuration.  It also proves that a profile read into `Map<String, Object>` using ObjectMapper is equal to an equivalent Geo or Weighted instance.