add functions to serialize and unserialize JS obj

This code is taken from the PR by @yihui. I merely removed the withJS
function and updated the documentation
pass array of objects to deserialize to the payload

We store an array of flattened key names in the payload under the key
`__evals__`, which is then used on the client-side to evaluate those
strings as objects.
add utility function to evaluate string members
resolve strings marked as js literals

This commit uses the `__evals__` array to resolve strings marked to be
evaluated as javascript literals.
export functions to serialize/deserialize JS obj.
Keep evals data separate from main payload

This allows the evals mechanism to work with arrays
Allow dots in member names to be evaluated
Don't export JSEvals
Merge branch 'master' into feature/js-eval

Conflicts:
	NAMESPACE
 resolve conflicts and merge upstream changes from @jcheng
fix NAMESPACE
Merge branch 'master' into feature/js-eval

Conflicts:
	NAMESPACE
Merge branch 'feature/js-eval'