Add missing required field (data_type).
Be consistent in API returns and fix broken APIs.

In the case of failures in the API use crits_response() now, instead of
raising a BadRequest exception. This extends the work Mike did in this
area.

In cases where we have a URL also return the object ID. This will make
life easier on consumers that only want the object ID. Without this the
only way to get it is to parse it out of the URL.

Fix the Certificate and PCAPs API since it never worked after the
s/parent/related/ change by brlogan.

Fix the Indicator API to require object_id and description as those are
required by the handler to not be None.

Fix an issue in add_objects() where the exception was not cast to string.
This was causing the response back from tastypie to not serialize properly.

Fix logic in screenshots/api.py to properly recognize missing fields.

Fix some minor whitespace problems.
Be more consistent about message.

Only include a message string if it is there.
Fix sample API.

If a zero length file is uploaded the result will not have an object key.

If the return value of handle_uploaded_file() is <= 0 an error could not
be determined, so move that into an else clause appropriately. Without this
the real error message can be obscured.
Merge pull request #208 from crits/api_response2

API improvements.