[JRO] Replace nested forms with form objects

accepts_nested_attributes for is a poor solution to the nested objects in forms problem so replacing that functionality, along with the nested_form gem, is a must.

* Add app/forms directory and autoload it
* Remove nested_form
* Replace all instances of nested_form_for with form_for
* Tighten up the permissions for strong params being used
* Remove accepts_nested_attributes_for in the topic model
* Add NewTopic and PrivateTopic form objects
* Remove nested attributes from setup controller
* Delete form partial that's only used once.

Misc:

* Standardize form object naming as `form` and not `f`
* Remove `multipart: true` html options for the forms
* Remove unnecessary `.topic_form` class on form tags
* Chill with the nested partials

Rename NewTopic -> TopicForm
[JRO] Fix breaking topics#edit form

`category_options` was being called on a Topic object, and the method
doesn't exist. But decorating the topic, and adding the method to the
decorator fixes it.

Also add correct, and uniform, css classes to the div wrapping around
the topic edit form.
[JRO] Format code and fix ordering issue in spec

* Some fixes to the formatting in this file while I'm in here (thx
  rubocop!)
* A spec down below was setting the cofniguration on the Thredded
  singleton and wasn't cleaning up after itself. Therefore, depending on
  the order of the tests being run, it would bleed over into subsequent
  tests and cause failure. This commit resets `Thredded.user_path` after
  it is changed