Change the Parcelable creation to keep constructor private

If a class contains another Parcelable (not Array or ArrayList but single
element), the previous version was using the Parcel constructor instead
of the CREATOR version. This required the constructor to be package or
public.

It can now stay private.
Add a "hasSubClasses" element in the JSON definition

This flag tells the generator that the class has subclasses :
- The Parcel constructor will be protected instead of private
- The class will not be final
Fix a code style issue with the generated code for the imports

There were 2 lines between the imports and the beginning of the class due
to a bug in the code. it's now fixed.