SI-5954 Make the implementation restriction only prevent non-synthetic

Value classes tripped the implementation restriction, so I've made
it even more discriminating - the restriction only applies if the
companion isn't synthetic. Updates the test accordingly.