ArrayNode: make it final

Take the opportunity to get rid of "non-final-only" methods along the way.
Make ObjectNode final

This also means a test had to be removed, which tested whether JsonNodeFactory's
.objectNode() could be overriden.

However, other methods of JsonNodeFactory, overridable, also return final
classes (.binaryNode(), .textNode() etc).
Fixing issue 157
update CREDITS
Implemented #159
Merge pull request #155 from fge/master

Make ArrayNode and ObjectNode final
Fix a regression bug caused by immutability changes to OBjectNode
Implemented #161
test cleanup
Implemented #148
Fix #130 in mainline (for 2.2)
Add unit test for StackTraceElement deserializer, wrt [JACKSON-888], can not reproduce issue
JsonNodeFactory: work around an old bug with BigDecimal and zero

This is the bug in question:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6480539

In short: BigDecimal's .stripTrainlingZeroes() does not work at all on decimals
which value is _exactly_ 0:

* new BigDecimal("0.0100").stripTrailingZeroes() has a scale of 2, as expected;
* new BigDecimal("0") has a scale of 0;
* new BigDecimal("0.000").stripTrailingZeroes() has a scale of... 3!

To work around this bug, when the user asks to create a decimal node, compare
the given value with BigDecimal.ZERO, and if the result is 0, return
DecimalNode.ZERO (newly created by this patch), which is a "new
DecimalNode(BigDecimal.ZERO)".
...
Merge pull request #162 from fge/master

JsonNodeFactory: work around an old bug with BigDecimal and zero
add a unit test for problems with type resolution
..
Fix [JACKSON-887]
Verify that [JACKSON-677] is also fixed
Use syntax highlighting in the readme file.