Move _EmptyClass earlier

We will need _EmptyClass for other purposes, so move it earlier in
vobj.py so it precedes the point where it will be used.  (This isn't
necessary, but it is part of my style...)
Create a SmartVersion class

To allow access to the versioned object under older schema versions,
we will be adding the ability to index the __version__ attribute.  To
accomplish this, the object held by that attribute must act like an
integer in integer contexts, but also implement indexing operations.
This is implemented by the SmartVersion class.

Note that SmartVersion is not 100% complete; some work is still
needed in __getitem__() to allocate an accessor object.  This will be
implemented once the appropriate support has been implemented in
VObject.