SingularField enhancements

* rename SingularField -> SingularPtrField
* introduce SingularField
Reuse allocated memory for string and bytes

String and bytes are stored in SingularField and RepeatedField structs
now, thus allocated memory is reused after messages is cleared.

"test_strings reuse" and "test_repeated_bool reuse" became faster by 30%.