adding a basic class to handle finite sources (iterable, indexable)

moving srf related stuff to source.py