Added an extension model

This commit adds an extension model, using code from
python-novaclient.

This commit also adds a number of misc fixes for import conflicts,
module paths, and adds license information to all files.