Add fallback search for case where Haystack isn't installed

Fix #268.

If anyone has a better fallback search strategy in mind or has tests to propose please comment on this PR and I will update before this gets merged in.

Signed-off-by: Don Naegely <naegelyd@gmail.com>
Good catch, that lookup is wrong since it is a bare filter not applying to any field. If we wanted to poorly mimic the Whoosh search, this would have to be `Q(name__icontains=content) | Q(description__icontains=content) | ...` etc. including related objects.

@murphyke The motivation to have some level of search functionality without requirement Haystack. Prior to this, a GET to `/api/concepts/?query=..` would [ignore the parameter](https://github.com/cbmi/serrano/blob/master/serrano/resources/concept.py#L202) and return all results. This makes the search in Cilantro useless. Arguably, Cilantro could hide the search box if search is not enabled, but Serrano does not (currently) provide that level of detail, nor do I think *not* having a search is a viable option.

Having even primitive search functionality is better than not having any.