Port Metasploit::*::EntityRelationshipDiagram to Metasploit::ERD

[MSP-9816](https://jira.tor.rapid7.com/secure/RapidBoard.jspa?rapidView=84&view=detail&selectedIssue=MSP-9816)

Ported the `EntityRelationshipDiagram` `Module` that I've been using in multiple projects to this gem.  Broke up the `Module` into separate classes that can be more easily tested and extracted the common use case for the future `yard-metasploit-erd` to just

```ruby
entity = Metasploit::ERD::Entity::Namespace.new('namespace')
entity.diagram(directory: directory).create
```

or

```ruby
entity = Metasploit::ERD::Entity::Class.new(klass)
entity.diagram(directory: directory).create
```