Refactored SCM (Source Code Management) functionality

Switched to use built in xml.etree.ElementTree instead of BeautifulSoup, which allowed to get rid from few dependencies 'beautifulsoup4', 'lxml'.

For better consistency modified all names that use "VCS" to use "SCM"  - Jenkins internally use scm "Source Code Management"

get_scm_branch, get_scm_source return list of values, that's because for some SCM's (such as git, svn) jenkins allows configure job with number of SCM url's and branches. 

Similarly modify_scm_branch, modify_scm_url  provide way to modify particular SCM entry (if job configured with number of scm url's or branches)

Renamed:
get_vcs --> get_scm_type
(Currently jenkinsapi can not change job to enable/disable scm and add branch or url - only modify existing configuration , name with "modify" looks more logical in this case)
set_scm_branch --> modify_scm_branch  
set_scm_source --> modify_scm_url

Removed get_scm_source as it duplicates get_scm_url

Few exceptions will be raised if jenkinsapi notice unknown SCM class or will be asked to perform scm action on not configured job: NotSupportSCM, NotConfiguredSCM