Fix issue 123.

Check for empty map value data before calling build_sparsity, to
avoid a segfault.

The device.py API wasn't exactly the same as the API defined in
base.py, so it has been changed - device.Map gives values a
default value of None, but raises an exception if no values are
passed.
Clarify exception when not passing values to Map constructor on device
Merge pull request #132 from OP2/issue-123

Fix Issue #123.