scala client changes and validation

better handling of non-required fields and fields with defaults
    the only thing we do client side is provide None as a default
    for Option fields. Defaults as specified in api.json are the
    responsibility of the server when the field is not present.
    Fields are only Options if they are explicity not required.
    Parameters are Options if they are not requird or have defaults.

add validation that resource fields do not have defaults.
    they are only valid on operations.

update README