Handle nullable keys for root folders

The root folder is special and has many null-valued keys
that are normally non-nullable. For such keys, suppress
NSNull and convert it to nil.

This commit adds test coverage for several additional
fields in BoxItem objects.

Bug report: http://stackoverflow.com/questions/19411700/assertion-failure-in-nsjsonserialization-ensureobjectforkeyindictionaryhasex
Fix completion callback when blocks are nil
Merge pull request #48 from mirego/fix-completion-callback

Fix completion callback when blocks are nil
Merge pull request #47 from box/root-folder-null-keys

Handle nullable keys for root folders
Set filename to default value if none is provided during file uploads

This prevents 405 errors from occuring during uploads if the file request builder's name
property is somehow nil.
Set application/json Content-Type header for POST and PUT JSON API calls
Add date to default upload name
Simplify non-empty filename method signature
Remove unnecessary temp variable in nonEmptyFilename
Merge pull request #50 from box/stack-bug-fixes

Several fixes for bugs reported on stack overflow
Merge branch 'master' of https://github.com/box/box-ios-sdk-v2