add tests for custom attributes
work from a hash for user attributes
add 'each_user_hash' method so that the ldap integration can be used without calling the provisioning API
test the plugin attributes method
don't try to coerce mappings into classes if we haven't loaded plugins since it is not necessary
move tests into same class as method under test
use HashWithIndifferentAccess to make it easier to access keys
allow xml tags to be 'dasherized' for consistency
fix issue where if an ldap attribute has the same name as a class the ldap sync will fail
use proper instance syntax
get rid of instance variables
add test for each_user_hash
use underscore for consistency
use same order of arguments for clarity
include underscore variable to indicate that perm_mapping is unused
use sprintf and add spacing for clarity
Merge pull request #23 from socialcast/add-each-user-hash

Add Socialcast::Provision#each_user_hash to allow the ldap integration to be used without calling the provisioning API.

Also:
* fix a bug where the provision command fails if an ldap attribute has the same name as a class
* moved ```Net::Ldap``` extensions into ```Socialcast::Provision``` to make it clear which library owns these methods

Known side-effects of these changes:
* custom fields and roles xml tags will now be self-closed when empty instead of an open tag and a close tag (i.e. ```<custom-fields type=“array” />``` instead of ```<custom-fields type=“array"></custom-fields>```
* all xml tags will now be *dasherized* (i.e. ```<first-name>Brian</first-name>``` instead of ```<first_name>Brian</first_name>```