Add a general node searching function for any geometric types

as titled
In that case, the vector will not be updated, i.e. it has no entry as initial. A user of the function can check as
 
```
std::vector<std::size_t> vec = nodeSearcher.getMeshNodeIDs(ply);
if (vec.empty()) // no nodes found
```