Add from_json() to PrimitiveProperty and Either

This fixes issues with deserialization in abstract rendering.
OK, maybe I am missing something here but...

Suppose you have x number of elements in `self.type_params`, and the first one can not be deserialized, then it goes toward the except and it is "passed", then the `for` loop follows and all the other x-1 elements can be deserialized successfully. At the last cycle of the for loop, if the last element is deserialized correctly, it `return`s and the else branch is never executed... but we actually had a deserialization problem at the first element...