Send email

This PR let sending email

New settings replacing resetpassword
```
omero.mail.config=false
omero.mail.from=ADDRESS@domain
omero.mail.host=smtp.domain
omero.mail.port=25
omero.mail.username=
omero.mail.password=
omero.mail.transport.protocol=smtp
omero.mail.smtp.auth=false
omero.mail.smtp.debug=false
omero.mail.smtp.connectiontimeout=60000
omero.mail.smtp.timeout=60000
omero.mail.smtp.starttls.enable=false
omero.mail.smtp.socketFactory.class=javax.net.SocketFactory
omero.mail.smtp.socketFactory.fallback=false
omero.mail.smtp.socketFactory.port=25
omero.mail.smtp.timeout=25000
```

Testing:
**1. SendEmail** request should be handled by:

```
omero.cmd.SendEmailRequest(subject="test subject", body='test message', html=True/False, groupIds=[0,1,...], userIds=[0,1,...], cc=[email1, email2,...], activeonly=True/False)
```

Use cases:
 - ```omero.cmd.SendEmailRequest(subject="test subject", body='test message')
``` - sends message to everyone who has email set (no real email validation) and is active user
 - ```omero.cmd.SendEmailRequest(subject="test subject", body='test message', inactive=True)
``` - sends email to all users
 - ```omero.cmd.SendEmailRequest(subject="test subject", body='test message', groupIds=[0,1,...], userIds=[0,1,...])
``` - sends email to selected active users
 - ```omero.cmd.SendEmailRequest(subject="test subject", body='test message', groupIds=[0,1,...], userIds=[0,1,...], inactive=True)
``` - sends email to selected users even they are inactive
 - CC and BCC parameters: 
```cc=[email1, email2,...], bcc=[email1, email2,...]```

**2. Reset Password** should be tested using the link on the login page.

WARNING: This PR doesn't change anything in reset password in IAdmin. It is very important to test if it failed on reseting password for LDAP user

```
INFO  [        ome.services.util.ServiceHandler] (2-thread-1)  Excp:	omero.cmd.HandleI$Cancel: ldap-user

Error: User is authenticated by LDAP server you cannot reset this password.
```

NOTE: resetting password is calling directly ```PasswordProvider``` instead of ```IAdmin.changeUserPassword()```. This is due to lack of ability to use of wrapper ```sec.runAsAdmin```.

New Reset Password functionality can be called by:

```
omero.cmd.ResetPasswordRequest(omename, email)
```

output:

```
---------- MESSAGE FOLLOWS ----------
Date: Thu, 28 Aug 2014 14:00:30 +0100 (BST)
From: from@example.com
To: test@example.com
Message-ID: <2145044955.1.1409230830106.JavaMail.mac@Mac-Book-Pro.local>
Subject: OMERO - Reset password
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Peer: 127.0.0.1

Dear Test User (test) your new password is: ***
------------ END MESSAGE ------------
```
We have misunderstood each other. What I mean is that the methods currently return `ArrayList<String>`. Common practice is to use the top-level interface (here: `List<String>`) of a collection as a return type - coding against an interface, not implementation.