use fs-extra for moving image files on upload

means that even if the source and destination paths are on different
partitions it will work
do not save blank entries for other_names etc

Without this clicking add for other_names etc and then not filling in
any details and then clicking save will result in a blank entry in the
other_names field of the person. This then causes #528 to occur when
saving a photo so we remove any entries that are entirely blank.
explicitly set other_name etc to undefined when saving

We need to remove these by hand when they are empty as the set method
ignores undefined keys.

Fixes #547
use update instead of save for image operations

This means that if something is broken in the other aspects of the data,
such as other_names not having a name which was possible due to a bug,
then the photo operation will still occur without error as the
validation isn't being fired on the entire object. Without this you end
up with a 500 error and you can't delete any photos.

Fixes #528
Fix jshint errors
prevent overlap of input backgrounds on political tab

add a bit of top margin and also remove grey background from select2
elements to stop the grey backgrounds on the political tab mashing into
each other

Fixes #526