Issue31optimizeitoa

Fixes #31 Optimize integer-to-string conversion in GenericWriter 

In the beginning, some tests are written in `misctest.cpp`. And the performance is nearly the same to the other thirdparty implementations. However, it is quite difficult to further develop and optimize, so I created a side project https://github.com/miloyip/itoa-benchmark .

Currently RapidJSON adopt the `branchlut` implementation. However, it may subject to be changed in future if better algorithm is developed. The API is very simple. It can be replaced by other implementation easily.

Full specialization of Writer for `StringBuffer` is added. Additional `Push()` and `Pop()` member functions are added for `StringBuffer` in order to prevent memory copying.

PerfTest results are not obvious because the sample JSON do not contain a lot of integers.
https://gist.github.com/miloyip/1326371e39652acf21d5
~~~
Before:
[       OK ] RapidJson.Writer_NullStream (676 ms)
[       OK ] RapidJson.Writer_StringBuffer (1144 ms)

After:
[       OK ] RapidJson.Writer_NullStream (638 ms)
[       OK ] RapidJson.Writer_StringBuffer (1098 ms)
~~~

However, when just using `Writer::WriteXXX()`, the results are obvious:
~~~
[       OK ] Misc.itoa_Writer_StringBuffer (180 ms)
[       OK ] Misc.itoa_Writer1_StringBuffer (289 ms)
[       OK ] Misc.itoa64_Writer_StringBuffer (247 ms)
[       OK ] Misc.itoa64_Writer1_StringBuffer (705 ms)
~~~

`Writer` is the new implementation. `Writer1` is the original naive implementation.

However, these performance tests are not rigorous enough. I would like to create a native json benchmark project in the future.