Merge pull request #74 from azul/refactor/finding-users

there's no need for User#find_by_param. clean it up
don't leave id records behind when unit testing
simplify users_controller_test
cleanup records after running user integration tests
Account: Composition to handle User and its identities

We have a lot of things that act upon a user record and one or more of it's identities at the same time:
* Sing up: Create a user and it's initial identity
* Rename:  Change the username and create a new identity, turn old into an alias
* Cancel Account: Remove user and all their identities.

In order to keep the User and Identity behaviour isolated but still have a this logic represented in a sinle place the Account model deals with all these things.

We could have overwritten the User#create, User#update and User#destroy methods instead. But then we would always create identities, even if we only need a user (for example in tests).
do not leave behind users in billing unit and functional tests
different tests need different names
remove the user after integration testing customer creation
fixup: remove memoization rather than adding a cache expiry

This might add a query here or there - but saving that is not worth the complexity added by caching and expiring properly.