[#382] Remove keys from extras when using convert_from_extras

If fields are moved to the top level, they should be removed from
extras. See #376 for discussion. Added test.

Basically adapt the converter for transforming this:

```
 ('extras', 1, '__extras'): {u'package_id': u'9fbddea7-31bf-4bf2-9595-ae7b5d9c1102',
                             u'revision_id': u'a13e1cf5-6ecb-4ea4-a4c2-f5c0d865e401'},
 ('extras', 1, 'deleted'): <ckan.lib.navl.dictization_functions.Missing object at 0x3c4a050>,
 ('extras', 1, u'id'): u'871cbb3c-8c93-4afa-bf2a-8f2123a7b365',
 ('extras', 1, u'key'): u'frequency',
 ('extras', 1, u'revision_timestamp'): '2013-02-22T17:33:11.577374',
 ('extras', 1, u'state'): u'active',
 ('extras', 1, u'value'): u'DAILY',
```
to this:

```
 ('frequency',): u'DAILY'
```
[#674] More descriptive Solr exceptions when indexing
Add IAuthenticator
Improve logic/auth/__init__.py bad logic (data_dict={})
Slight refactor of logic/auth/__init__.py for more pythonic plus store found object
Saml2 - add check_access calls to some user actions
[#674] Capture socket error as well when contacting Solr
[#652] Require resource_show permissions to read datastore resources
[#652] Fix auth test in action, use the normal user in the search tests instead of the sysadmin user
Fix for unauthorized user edit
[#652][wip] Add test for search for private datasets
[#652] Only allow aliases in search to simplify checks. Also make this clear in the docs.
[#652] Make the private dataset test work
[#652] Provide more useful information if sql search goes wrong
Clean up test code
[#652][wip] Add actions to make datastore resources private or public
[#652] Refactor checks whether resources exist
[#652] Close connection, fix missing data_dict['connection_url']
[#652] Automatically make resources private or public when the permissions change
More helpful information about errors