CppEditor: Add tests for use selections

Change-Id: I5f958f0afbee076a8bac40e6e3c383f0c558d34a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
CppEditor: Move two functions to cpptoolsreuse.{h,cpp}

They do not really depend on CppEditorWidget and will be re-used in a
follow-up change.

    CppEditorWidget::identifierUnderCursor()
    CppEditorWidget::findCanonicalMacro()

Change-Id: I553bb68694fb4b5f1baa331debf33ae234e3dedf
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
search for partial specialization for arrays

A<int[]> now prefer second specialization for
template<typename T> class A
template<typename T> class A<[]>

Change-Id: I32e874f78b2f5b363d088fbab6a8897e42e44035
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
CppTools: Move WorkingCopy to new cppworkingcopy.{h,cpp}

Change-Id: I447acf28849bffb52c1e6b6eafdde221ec0b179e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
CppTools: Move Project{Part,Info} to new cppprojects.{h,cpp}

Change-Id: Ieff216017b9da1e6a12121688ea9572bdd81fd9b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
CppTools: Extract BaseEditorDocumentParser out of SnapshotUpdater

Change-Id: If89e81eec6d600d3d39cc09203cf434d0768c1b4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>