Changes in Value class.

Replace static method `NewObject` with an constructor. Since it's the
only constructor besides default and copy constructor, it does not
interfere with anything.

I don't know why but it seems more natural this way.
Bug fix: ListObject allocation.

Apparently constructing CountedObject instances in constructor of
another CountedObject can cause garbage collector to go berzerk and
destroy objects which are still in use. Good to know.
Merge pull request #71 from peelonet/value-class-changes

Changes in Value class.