defaultValue parameter for preparePlainTextValue

I added this parameter in order to make preparePlainTextValue handle
null (empty) value too, since it is already responsible for truncating the value
if too big. The default value is null, so it will maintain
its original behavior and permits fallback when the plain text value
is empty.
null check instead of empty check

As suggested by @psychoticmeow, use the null comparison
in order to let 0 be a valid default value.
first implementation
Renamed preparePlainTextValue

This also adds two new methods on the field class:
1. `prepareReadableValue` which must return a readable string,
optionally filtered or process for better readability.

2. `prepareTextValue` which must return a complete string representation
of the field's value(s).

It also refactors a bunch of file in order to replace
`preparePlainTextValue` calls to `prepareReadableValue`.
Fields that were overriding `preparePlainTextValue` now implements
 `prepareTextValue`
fix up wrong method signature
merge with integration
Merge pull request #2100 from DeuxHuitHuit/plain-text-default-value

Add a defaultValue parameter for preparePlainTextValue, rename all the prepare* functions to more sensible method names.