Moved option list generation to separate method

This allows subclasses and extensions time to modify the list of options and their configuration without having to override the entire Field method. 

A more flexible way to implement silverstripe#3311