make private fields protected to allow subclass access
add SemanticVersion.toMap method, and move LanternVersion and DateSerializer into lantern-common