Check for latest vocabulary versioning

Fixes #11 

Check all vocab instances for latest version and issue a warning indicating the line number, supplied version, suggested version, and vocab name for each inappropriate vocab usage.
Hey @slsnow, this looks really good! I recently wrote up some code for manipulating controlled vocabularies, and came up with a way to get around cases where the default vocab namespace isn't mapped to the `stixVocabs` alias (at least I think I came up with a solution to that problem, heh). Below is a hacked up version of my code:

```python
NS_XSI = "http://www.w3.org/2001/XMLSchema-instance"
TAG_XSI_TYPE = "{%s}type" % NS_XSI
TAG_SCHEMALOCATION ="{%s}schemaLocation" % NS_XSI
DEFAULT_VOCAB_NAMESPACE = 'http://stix.mitre.org/default_vocabularies-1'

 def _get_ext_namespace(self, node):
        """Returns the namespace which contains the type definition for
        the `node`. The type definition is specified by the ``xsi:type``
        attribute which is formatted as ``[alias]:[type name]``.

        This method splits the ``xsi:type`` attribute value into an alias
        and a type name and performs a namespace lookup for the alias.

        Args:
            node: An instance of lxml.etree._Element which contains an
                ``xsi:type`` attribute.

        Returns:
            The namespace for the type defintion of this node.

        Raises:
            KeyError if the node does not contain an ``xsi:type`` attribute.

        """
        xsi_type = node.attrib[TAG_XSI_TYPE]
        alias, type_ = xsi_type.split(":")
        namespace = node.nsmap[alias]
        return namespace

def _update_vocabs(self, root):
        vocabs = self.UPDATE_VOCABS   # a dictionary where the vocab type name is the key
        nsmap = {"xsi":  NS_XSI}
        xpath = "//*[@xsi:type]"
        nodes = root.xpath(xpath, namespaces=nsmap)  # get every node with an xsi:type attribute

        for node in nodes:
            xsi_type = node.attrib[TAG_XSI_TYPE]
            alias, type_ = xsi_type.split(":")

            ext_ns = self._get_ext_namespace(node)  #  look up the namespace for the xsi:type ns alias

            if ((ext_ns != DEFAULT_VOCAB_NAMESPACE) or
                (type_ not in vocabs)):
                continue

            # now do something with the `node`
```

Something like the code above may be useful for this best practice rule check. Maybe? I may have overlooked some exceptions that will break it (still building and testing stuff!).