Added support for topojson and data resources in non-json format.

Now the topojson module is loaded when the WITH_TOPOJSON define 
is declared, moreover the d3.geo.projection extension is loaded 
when the WITH_JSLIBS define is declared.

Moreover a new customized version of d3 including the dsv module 
allows to load data resources in a format different from json.
Implemented several routines for loading JS code.

Since there are several heterogeneous fragments of JS code which 
are injected into the JS engine, and since the amount of these code 
fragments is growing, I took the decision to simplify the management 
of such JS code fragments.
That leads me to move as much JS code as possible to external files, 
which are placed under `jslib` folder, now. For manage these 
external JS files I implemented some routines, the most notable is: 
LoadJSTemplate(const String& filePath, const ArgListType & argList).
The routine loads the JS source file, whose path is `filePath`, into the 
JS engine, this source file must contain a function named 
`vegascene_template`, the elements of `argList` are passed, as 
function arguments to `vegascene_template`.
Provided a C++ back-end for computing text width.

This back-end allows to compute text bounds and to solve the 
bounds computation issue.
Fixed JSContext2d::measureText implementation