UR::Value subclasses can have custom serializers

subclasses can implement __serialize_id__ and __deserialize_id__

Change-Id: Ide75266889e2e08c45805669b36b9b47d6eae88e
refactor to make each class' loader into a cached closure

Change-Id: I52a9718929ba7b0ecff43e2b6192bed72886ff71
Use each_arrayref to avoid nested loops in perl-space

Change-Id: I0127f9273ffeee3af53b94e50b7a648228cc2283
use map to avoid a loop in perl-space

Change-Id: Ib80b8cd2f9f2c36fe7a8762ed44d98b94521f1b4
condense the single/multi loaders into one loader to save a function call

Change-Id: Ic04b6e4d4d0dcf873fa3e808d5d6b61b2c0f9078
add UR::Value::JSON

Change-Id: I56a89398c46544a01f7da9c57a5ea466e19677aa