make it easy to populate NetDevices from arbitrary sources

I talked to @jathanism in IRC. I think it would be awesome to allow someone to write their own class, example:

    class MagicNetDevices(object):
        def populate(self):
            # parse data from source
            # create list of NetDevice objects
            return netdevices

This could then be imported and the populate method ran to create the list of net devices used by NetDevices. My current use case is to hit a HTTP resource that returns JSON, map the data to what netdevice expects, then return the list of netdevices.