Adding feature for sharing tickets.

This feature consist mainly of a single interface, giving event administrators
the option to share tickets with either an existing user or a user which the
event administrator creates and invites. The interface is very much like what
a regular user will see when trying to buy tickets.

Upon sharing, a user is either created or fetched and a new and completed
transaction is created, containing the types and amounts specified by the
event administrator.
Fixing a bug in event validation.

When we created the feature for sharing tickets by event administrators, we
introduces a new and virtual payment option called 'shared'. It is implemented
as a instance method in the event class that always returns true. Because of
this, not event would ever have no payment options and one was able to not
support neither paypal nor bank transfer. This was obviously a bug.
Renaming <method>_for_payment columns in event.
Validate password only when signing up.

Since the password obviously can't be present when a user is invited, it
shouldn't be validated either. Previously, this was ensured by having a
dedicated method for validating at invitation, but this was ugly. Now we
override #password_required? and check if a the virtual attribute
'to_be_invited' is present or not.