adds a new [de]serialize method for nodes only

summary of changes:
  * add kowhai_[de]serialize_nodes() to serialise the tree in a flat
    jason file where the tree path is encoded in a string .. this is
    more useful for editing by hand in a file, or if you just want to
    write part of a tree, ie writing every instance of bar in foo, but
    only bar not the other surrounding elements of foo, ie:
    element:
        struct
        {
            int untouched1;
            int bar;
            int untouched2;
        } foo[4];
    note that this api does not rebuild a kowhai_tree from scratch given
    the serialised file, instead it merges the data it has into an
    existing tree with a similar structure (see kowahi_node_not_found_t
    callback for merging options) .. also it _requires_ (cannot be NULL)
    as kowahi_get_symbol_t callback to convert a symbol string to a node
    id and a kowahi_get_symbol_name_t (like the tree api) ... if human
    readable symbol strings are not used you can just printf and scanf
    the numbers into the tree, if symbol names are used they must not
    include '.' or '[' or ']' characters (these are special delimiters
    in path encoding.
  * renamed kowhai_[de]serialize() -> kowhai_[de]serialize_tree() ...
    functionality remains unchanged (done just to make clear what type
    of serialization is being performed, ie not nodes)
  * add new error types for new api's
  * replace a union type for all kowhai type that was being redefined
    over and over with a named union called anytype_t
  * unit test updated for api name changes and cover all foreseeable
    error conditions on new kowhai_[de]serialize() api, and of course
    the successful condition of serializing and de-serializing a kowahi
    tee's nodes is done
use xplatform safe printf styles

since %d defined a long int on some platforms and a int on other etc you
will get compiler warnings on different machine types if you dont have
these changes, see:

http://stackoverflow.com/questions/4961115/compiler-warning-about-printf-long-unsigned-int-and-uint32-t
http://stackoverflow.com/questions/12120426/how-to-print-uint32-t-and-uint16-t-variables-value

bloody xcompiling !
clean up serialise

expose the api functions as desired, and hide the non api functions
(avoids name spacing issues)

this exposes a nice little function kowhai_str_to_path() to essentially
de serialize a path which is quite useful (its counter part to serialise
a path exists, but is not exposed as I am not sure it has much use at
this time)
oops fix tabs space painfulness
fix formatting of jason array

arrays should have opening & closing square brackets, ie [], and also
require elements to be separated by commas.
http://www.json.org/

the up side of this is the node serialize output can be directly loaded
into python by cut and paste and forms a valid object (as would any well
formatted jason I guess, but this works for the node serialise now)
Merge pull request #34 from othane/node_serializer

adds a new [de]serialize method for nodes only