Feature: fuzzyId

This has been talked about a few times in the past. In the case where we're given a reference object, it would be useful to be able to efficiently get the "id" of the reference without making unneeded DB calls.

eg. 
```PHP
    public function getAuthor($book_ref)
    {
        $book = Account::fuzzyFind($book_ref);

        $author = Author::find_by_book_id($book->id);
        // OR
        $author = $book->author

        return $author;
    }
```

The above example will do what's needed, but it makes two calls to the DB. If the $book_ref is the book's ID, then we don't need to look up the book object:

```PHP
    public function getAuthor($book_ref)
    {
        $id = is_int($book_ref) ? $book_ref : Account::fuzzyFind($book_ref)->id;
        $author = Author::find_by_book_id($id);
        return $author;
    }
```

This PR adds in a convenient method to reduce the amount of repetitive code in an app:

```PHP
    public function getAuthor($book_ref)
    {
        $id = Account::fuzzyId($book_ref);
        $author = Author::find_by_book_id($id);
        return $author;
    }
```

Hmm, considering how many models we have and the optional way they can be found/queried-for, along with the fact that this is a public library, I'd say we should stick to the design of the Interface and Trait combo. Since this method requires the `fuzzyFind()` method, you could make a `FuzzyIdInterface` that **extends** the `FuzzyFindInterface`, which would require all of the abstract method signatures from the parent.

That would follow our current design more and allow for a type check on a model while allow for a polymorphic relationship. :+1: