Started abstracting common model tests.
Converted the rest of the model test over to ModelTest.

Code coverage is the same as before, code is less redundant.
ModelTest now uses the abstract base class module (abc).
Reduced some of the sample_obj implementations to fewer statements.

Mostly by folding things into one expression; @gsilvis and myself both
agree that this is more readable.
Merge branch 'abstract-model-tests' into ns-nic

Conflicts:
	tests/unit/model.py
Added some (failing) tests

We want to be able to have (h)nics with the same name, provided they
don't belong to the same (head)node.
(H)nics are now namespaced by their (head)nodes.

This resolves #156. There are a few things I'm not totally satisfied
with though:

* There's a bit of redundancy in the changes made to the two api
  functions; it's probably abstractable, but I'm not sure it's really
  worth it, given that it appears exactly twice.
* I took a bit of a hacksaw approach to the database schema change; I
  just removed the unique constraint on labels. All of the api calls are
  checking for the existence of duplicates anyhow (We'd see
  IntegretyErrors otherwise, rather than DuplicateErrors), so this is
  still "correct" -- but long-term I'd like to clean this up (there's
  lots of bits of our schema that need that though).
Merge pull request #165 from zenhack/ns-nic

Namespace (h)nics by their (head)nodes.