Tentative structure [WIP] for interfacing Arb

This PR can be used to facilitate discussion on how to interface Arb in CSymPy. If this doesn't require a lot of polishing, let's continue future work on this, else start-over on a different PR. 

Main changes:

+ Added method n() to `Basic` class which evaluates the instance by
  calling `eval()` function.
+ Two new files were added, `eval.h` and `eval.cpp`, which contain
  the functions for evaluating CSymPy types. These files contain main
  evaluation function `eval()` and support functions.
+ `eval()` is a if-else chain that calls the correct support function
  by checking the input instance type.
Right. We should nicely expose both just a single evaluation as one function and a loop as another. Sometimes users might want to do the loop themselves.