Luke Barnard 34ed4f4206 Implement username availability checker
Outlined here: https://github.com/vector-im/riot-web/issues/3605#issuecomment-298679388

```HTTP
GET /_matrix/.../register/available
{
    "username": "desiredlocalpart123"
}
```

If available, the response looks like
```HTTP
HTTP/1.1 200 OK
{
    "available": true
}
```

Otherwise,
```HTTP
HTTP/1.1 429
{
    "errcode": "M_LIMIT_EXCEEDED",
    "error": "Too Many Requests",
    "retry_after_ms": 2000
}
```
or
```HTTP
HTTP/1.1 400
{
    "errcode": "M_USER_IN_USE",
    "error": "User ID already taken."
}

```
or
```HTTP
HTTP/1.1 400
{
    "errcode": "M_INVALID_USERNAME",
    "error": "Some reason for username being invalid"
}
```
2017-05-03 12:04:12 +01:00
..
2017-03-29 09:50:05 +01:00
2017-04-17 00:49:11 -05:00
2017-04-05 14:15:09 +01:00
2017-04-24 13:27:38 +01:00
2017-04-07 10:03:48 +01:00
2017-01-17 14:32:53 +00:00
2017-04-11 15:01:39 +01:00
2016-08-08 16:40:39 +01:00
2017-03-30 17:50:31 +01:00