Fix UserDetail association and use counter_cache

1. Let Rails handle counter_cache
2. Use belongs_to instead of has_one through

#### Before

```console
> Thredded::Post.first.user_detail
SELECT `thredded_user_details`.* FROM `thredded_user_details` 
INNER JOIN `accounts` ON `thredded_user_details`.`user_id` = `accounts`.`id` 
WHERE `accounts`.`id` = 127 LIMIT 1
```

#### After

```console
> Thredded::Post.first.user_detail
SELECT `thredded_user_details`.* FROM `thredded_user_details` 
WHERE `thredded_user_details`.`user_id` = 127 LIMIT 1
```