enable conversion of private/public goals

private -> public should not create a new record, it should
either use a public goal with the same title, or update this goal
to become public

public -> private should always create a new record, this
ensures we don't lock other users out of a habit. theoretically
we could convert the record instead of creating a new one if there
are no other users on the goal

New private goals should check for a private goal of the same
title, use that if it exists.

New public goals should check if a public goal of same title exists

todo: public -> private doesn't have to create a record if there
are no other users on the goal