Merge pull request #513 from rhafer/release/pebbles/master

Another chunk of fixes from the essex-hack-suse  branch
Merged this pull request locally and smoke tested admin not and one discovered node.  Seems fine, merging.
Replace recursive_merge! with Chef's deep_merge!

recursive_merge! had a number of serious issues, worst of which was
that it did not recurse.

An exclamation mark was missing in the recursive call.  However the
interpreter never even reached this typo in order to result in a
NoMethodError, because the block passed to merge! was never used - b
is always a Mash and unlike Ruby's Hash, Chef's Mash ignores any block
passed to merge!  So in fact no recursion ever took place.

Other issues:

    if _old.class.kind_of? Hash.class

should have read

    if _old.kind_of? Hash

There should have also been a test when recursing that _new was a kind
of Hash.

In the case where _new was nil, it should not have overridden the
existing value.

Also added some debug to monitor potential impact of replacing broken
recursive_merge!  with deep_merge!

https://bugzilla.novell.com/show_bug.cgi?id=775654

(cherry picked from commit 385467bb694ef1548cfb2213a4da58b14700912a and
06d242c86430da79574b128c95270d6e356b3d66)
Add support for updating array-typed JSON data in edit_attributes views.

No need to switch to "Raw" editing method any more.
(cherry picked from commit 032956d3d4c4d9b4ffc0f5f6f5ec41650d6889ad)
Add support for float values in update_value() helper

Signed-off-by: Vincent Untz <vuntz@suse.com>
(cherry picked from commit ca51b3996029ac96a6258a256cc373bfaffb8d6e)