Add ExcludeGuardNodes and ExcludeMiddleNodes options

Similar to the ExcludeExitNodes we have right now, we should add an ExcludeGuardNodes and ExcludeMiddleNodes for guard and middle node selection respectively.