Add CallerID Number filter to resource

Filter out resources where "cid_rules" is not empty and "Outbound-Caller-ID-Number" not match this rules
This has become too much nesting of case clauses. Can you break this up into sub-functions? Maybe:

```erlang
    {'ok', Match} -> resource_to_endpoints(Resource, Number, JObj, Endpoints, Match)
end.

resource_to_endpoints(#resrc{...}, Number, JObj, Endpoints, Match) ->
    ...
```

And then each branch of `case evaluate_cid_rules(...) of` can call into sub functions as well. With better-named functions, this should help the reader better follow the intent of the code. Right now, its a smashed together hodge-podge of branching and hard to follow as a reader (I know this isn't your fault, but we may as well take the chance to clean up the structure of the code too).

Let me know if you have questions about the request above.

Secondly, can you start a doc in stepswitch/doc/resources.md that describes the fields on a resource document with your additions? You don't need to necessarily define all the fields, esp if you don't quite know their purpose, but at a minimum, can you document what should be in cid_rules?