lib/standard/string: Introducting Copy-on-Write FlatBuffers

As requested, implemented a Copy-on-Write mechanism on FlatBuffer, small performance improvement on the to_s operation.

Before :
![cct](https://cloud.githubusercontent.com/assets/1444825/4273670/fef3f1fc-3cec-11e4-9f81-8afaa6e4c92a.png)

After :
![concat](https://cloud.githubusercontent.com/assets/1444825/4273675/028c5bf6-3ced-11e4-93a9-ef20e94ba55f.png)
openjdk fait une seule allocation, pas deux.

On Fri, Sep 19, 2014 at 2:15 PM, jcbrinfo <notifications@github.com> wrote:

> In lib/standard/string.nit:
>
> > @@ -1348,8 +1373,10 @@ class FlatBuffer
> >  		return real_items.as(not null)
> >  	end
> >
> > -	# Create a new empty string.
> > -	init do end
> > +	# Create a new empty `FlatBuffer` with a default capacity of 16.
> > +	init do
> > +		items = new NativeString(16)
>
> En fait, c’est exactement ce que fait OpenJDK
> <http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/StringBuilder.java#StringBuilder.%3Cinit%3E%28%29>
> .
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/privat/nit/pull/749/files#r17799910>.
>