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
fix problems with multiple edit tabs displaying

before we match the active edit tab and the active view tab hide the
content of the currently active edit tab as the easy tabs API doesn't
seem to do this for us.

Fixes #544