java_gen: generate getStableValue() for 'stable' enums

'stable' enums are enums whose wire values are guaranteed to not change
between versions. For this enums, we can generate the wire value
into the 'symbolic' enums as "stableValue" to make them more easily
accessible.

This commit does a bit of housekeeping to pass the 'stable' information
into the JavaEnum. Then, for stable enums, we add a 'stableValue'
EnumPropertyMetadata field that generates the values into the enum.
diff --git a/java_gen/templates/const.java b/java_gen/templates/const.java
index a7786f4..1828bac 100644
--- a/java_gen/templates/const.java
+++ b/java_gen/templates/const.java
@@ -37,7 +37,7 @@
 public enum ${class_name} {
 //:: for i, entry in enumerate(enum.entries):
 //::    if enum.metadata.properties:
-//::        params = "({})".format(", ".join(entry.constructor_params))
+//::        params = "({})".format(", ".join(type.format_value(value) for (type, value) in entry.constructor_params))
 //::    else:
 //::        params = ""
 //::    #endif