Add announements feature w/ create, update, delete functions to users and dashboard

@cgruppioni @chukdisc
Why isn't this `null: false`?