Implements #433 Profile Fields Enhancements 

This took me quite some time.

I modified the behavior of the "Show in registration", "Editable by user?" and "Hide on profile?" settings, so I wouldn't be surprised if there are bugs somewhere.