Stringify all keys and values for source_dicts

This change makes things more consistent, and generally should produce
more predictable behaviour. For example, previously if you passed an
integer as an extended value its strlen would get calculated as its
magnitude (Oh God I never tried passing a negative integer as an
extended value...).

Keys and values are now str()'d before being cast to C-strings. Pretty
much everything in Python can be stringified, which means that
technically we're now more permissive about what will make it through
the gauntlet, but at least the behaviour shouldn't be world-breaking.

I did jump through a couple of hoops to get full code coverage, creating
a bogus class with overridden __str__ attribute to prevent str() from
working. This triggers an exception which keeps the coverage test happy.

Simple and extended points are now rejected if they are None.
Merge branch 'master' into barney-stringify-all-source-dicts

Conflicts:
	marquise/marquise.py
Fix grammatical bug
Merge pull request #8 from anchor/barney-stringify-all-source-dicts

Stringify all source dicts + fix indentation