created common model for tag and branch

merged also methods to create tags and branches to createReference()

createNewRevision() doesn't need a referenceName anymore since all
methods accept now both either a revisionNumber or a referenceName

modified getNewRevisionNumber in a way that it can detect itself if this
is a new branch

adapted several methods which used all changed methods

@stephanhensel: check if this fits also your needs