Add interface to parse JSON into a tree like structure.

While reading back JSON data from files, I found myself fiddling again
and again with the scanner-like (think: lex) interface of
<yajl/yajl_parse.h>.

I think that the best approach to my problem is to write a *parser*,
i.e. a piece of code that gets tokens from the scanner and builds a
parse tree out of it. So this is what I did.

This doesn't play well with parsing streams, naturally, but that's not
my use-case and the stream parsing isn't affected by an additional
interface.

Please keep in mind that this is work in progress. It's currently not
even possible to free the returned structure. I just wanted to push it
out there in the hope of some early feedback.
Add "yajl_tree_free", a function to free the pointer returned by "yajl_tree_parse".
src/yajl_tree.c: Add a couple of comments to the non-obvious functions.
src/yajl_tree.c: Parse JSON numbers to int and double and include that in the struct.

An additional "flags" field marks whether or not any problems occurred when
parsing the string. The check is very picky and even considers trailing
characters to be a problem. Especially when expecting an integer but the
string actually contains a double, the initial characters may form a valid
integer which differs greatly from the actual value of the double.
fix paths embedded in dylib upon installation on osx.  closes #11

more
yajl_gen_double now specifies precision to sprintf as %.20g to avoid premature rounding.  closes #15
Don't use -fPIC for static lib.  Cmake will automatically add it for the shared.

Signed-off-by: Lloyd Hilaiel <lloyd@hilaiel.com>
Install yajl_version.h, not the template

Signed-off-by: Lloyd Hilaiel <lloyd@hilaiel.com>
Don't export private symbols

Signed-off-by: Lloyd Hilaiel <lloyd@hilaiel.com>
remove bash dependency in run_tests.sh, contributed by http://github.com/bapt
adjust version to indicate branch stability
re-introduce long long type for integer representation now that we require C99
use size_t rather than unsigned int for representing buffer lengths for yajl 2.x
Fix test for W32

Signed-off-by: Lloyd Hilaiel <lloyd@hilaiel.com>
ensure we're using the echo program on the path, at least in snow leopard running 'echo -n' under /bin/sh outputs the '-n' rather than parsing it as an argument which means "omit trailing newline"
Merge branch 'master' into 2.x
src/api/yajl_tree.h: Provide (and use) macros for handling "yajl_value_t".
src/api/yajl_tree.h: Add Doxygen documentation.
Merge branch 'parsetree' of git://github.com/octo/yajl into parsetree
yajl_tree.[ch]: Rename the "children" member of yajl_value_array_t to "values".