[ADD] base_contact_function module

Allow to manage contacts by function
[ADD] base_contact_function_partner_firstname

Add firstname before name.
Name is considered like the lastname and we have firstname and lastname on
partner view and contact view.
Extend base_contact_function description
Add optional web_m2x_options options

Functions for contacts of companies should be created in the Functions
Tab. Functions created straight in the Contact form will not end up in the
Functions Tab.

Does not change behaviour on systems without web_m2x_options
Fix pylint
Respect limits and remove duplicates
Don't test list order
Merge pull request #20 from savoirfairelinux/partner_contact_management

Base contact by function