Use macro for explicit instanciation.
Add virtual ctor to AmfItem.
Store actual objects in Amf collection types.

This is in preparation of deserialization support for those types.
The fact that shared_ptr<AmfItem>s are used for those collections is
just an implementation detail, the collections actually have full
ownership of the objects they contain.

Refs #1.
Add simple test modification of array members.