requireFunctionNameMatch: requires member and property names to match function names

Example of member name mismatch:

```js
function Test() {};
Test.prototype.foo = function bar() {};
```

Example of property name mismatch:

```js
var test = {foo: function bar() {}};
```

Fixes #846
Closes #850
I think the first clause mandates too much. This rule now enforces `disallowAnonymousFunctions` and `requireFunctionNameMatch`. 

What do you think about this rule enforcing that *if* a function expression is named, its name must match the assignment property or member?