ME: added 'field_xpath' field in attachment serializer
ME: refactored test; added missing field
ME: added a check for filename in list
ME: refactored 'get_field_xpath' method
ME: refactored implementation of get_field_xpath function
ME: refactored 'get_field_xpath' to use a recursive function
ME: made code more clean
ME: refactored 'labels' action to fix type error
ME: added a test for labels action
Merge pull request #674 from onaio/512-accessing-data-endpoint-with-label-triggers-error

ME: refactored 'labels' action to fix type error
UK: update password reset docs
UK: add id to user endpoint data
UK: lookup user by pk or username
UK: lookup profile by user pk or username
UK: add id to profiles endpoint
UK: add username to reset email link, closes #680
JZ: Initial solution commit
JZ: Implement atomicity for CSV imports

CSV imports should happen for all rows or nothing at all!
Use `django.transactions` for rollbacks on submission on errors

Also remove metadata from CSV rows before submitting
JZ: Use 'instance.delete' stop gap for atomicity

Django doesn't seem to like `@transaction.commit_manually` decorated
functions called inside `transaction.atomic()` context manager blocks.
JZ: Make "uuid_regex" more versatile

Valid xml can contain whitespace (including newlines) around tags and
content. This commit ensures `logger_tools.uuid_regex` considers this
and that `logger_tools.get_uuid_from_submission()` returns a form's uuid
given submission xml with the above described properties.