Forum module

This the forum module, provided with the style of @jeremyletang. The #283 should be closed and this one merged instead.
You should ask @jeremyletang, it's one of his improvements so I don't know.