Issue title: freezed_lints
 Issue body: ### Creating new package `freezed_lints` using [custom_lint](https://github.com/invertase/dart_custom_lint#using-our-custom-lint-package-in-an-application)

- [ ] Create `packages/freezed_lints/` (not inside `freezed`, `freezed_annotation`), so that it's opt-in for developers
- [ ] Check if/how to write tests for lints 
- [ ] adapt .github/workflow to also run and test freezed_lints
#### incomplete list of lint ideas
_Don't hesitate to add your ideas for lints, or correct me on my ideas, should they be useless or even undoable with lints._
- [ ] `missing_part_directive` if you use `@freezed`/`@unfreezed` on a class, but there is no `part <filename>.freezed.dart;`
- [ ] `missing_part_directive_json` same for when you use `.fromJson(Map<String, Object?> json)`-constructor, but there is no `part <filename>.g.dart;`
- [ ] `missing_private_empty_constructor` when a getter, method, or late variable is added to a freezed class , but it has no `._()`-constructor
- [ ] `mixin_name_mismatch` when `class MyExample with _$TypoInMixin {...}`
- [ ] `fromjson_expression_body` when you do `factory MyClass.fromJson(Map<String, Object?> json) { return  _$MyClassFromJson(json); }`
- [ ] `fromjson_block_body` when you do `factory MyClass.fromJson(Map<String, Object?> json) => MyOwnImplementation();`
- [ ] lints for misconfigured parameters:
```dart
@freezed
class Parameters with _$Parameters {
  factory Parameters(
    @Default('defaultValue') String str, { // default_on_non-optional
    int i, // no_default_or_required_on_optional
  }) = _Parameters;
}```


 Comments: 
 Comment 0: I really don't like tagging 🙇 people, so I'm sorry.
@rrousselGit can you give short feedback if this approach is acceptable?
Then I would create an initial PR with the first lint.
{'source': 'GithubIssues', 'repo_name_with_owner': 'rrousselGit/freezed', 'issue_id': 1298902371, 'repo_stars': 1299.0}