Avoid unconditional copy of node in the PUT handler

The xmldb_update_node used to unconditionally copy the input root node
before reparenting it to the global DOM tree to avoid corruption of
the global DOM tree. Now it is made clear that this relates to the XML
parser's internal dictionary and an extra copy of the input root node
will only take place if a dictionary has been used.

To start with, the global DOM tree is made independent from any parser's
internal dictionary. Optimisation could be done in the near future once
we figure out how to use XML parser dictionary in a thread-safe manner.
Replace xmlParseFile with xmlReadFile on the server side.

The xmlReadFile is superior to xmlParseFile in that it enables the
flexibility of specifying different parser options.

Currently the XML_PARSE_NODICT is used for oBIX server's static
configuration files and history index files.
Minor improvement on the signUp handler.

The "writable" attribute is removed immediately at the entrance of
the signUp handler so that it won't be set in a device contract
in the global DOM tree nor would it appear in the response of the
signUp request.

Also xmldb_copy_node should be preferred to xml_copy when it comes
to node in the global DOM tree, since the former will call
xmlUnlinkNode to de-associate the copied node from the global DOM
tree properly.
Replace xmlReadFile with xmlParseFile on the client side

xmlParsexxx friends are used as much as possible in lieu of
xmlReadxxx counterparts.
Merge pull request #64 from Qingtao-Cao/devel

No regression could have been introduced since there is no change about the prototypes or data flow of the oBIX server functions regarding XML file or memory parsing. In theory it is a good start to replace xmlParsexxx with xmlReadxxx and we can further optimse oBIX server memory usage about XML parser dictionary in the future.

Merged given that all valgrind tests passed.