Syntax rules: Support templates and loops
Open existing projects.
Merge branch 'ui'
Support structs
Clean completion proposal insertion; Syntax rules: Support ref / out when passing parameters
Fix project syntax.
Abstract project dirs and supported source file suffixes.

 * valama_project class:
   - project_source_dirs and project_file_types are string[] properties which
     include project dirs (default: src/) and source file suffixes (default:
     .vala).
 * Furthermore compare file name on new project load. This does not check
   if projects are *really* different (e.g. because links, mounts).
Set some regexes to ignorecase.
Let valama_project.load_project_file() throw LoadingError.

 * valama_project can now throw a LoadingErorr which is thrown by
   load_project_file method if xml file (.vlp) parsing does not succeed.
   This is not properly handled if Valama is started with an invalid project
   file. But this should be done with an easier interface for all GUI elements
   because all of them needs the valama_project class.
   So fixing this issue is related to roadmap 1.0: 4. GDL
 * Additionally check inode on Unix systems (disable with NOT_UNIX macro) to
   prevent opening same file.
Let valama_project.load_project_file() throw LoadingError.

 * valama_project can no throw a LoadingErorr which is thrown by
   load_project_file method if xml file (.vlp) parsing does not succeed.
   This is not properly handled if Valama is started with an invalid project
   file. But this should be done with an easier interface for all GUI elements
   because all of them needs the valama_project class.
   So fixing this issue is related to roadmap 1.0: 4. GDL
 * Additionally check inode on Unix systems (disable with NOT_UNIX macro) to
   prevent opening same file.
Merge branch 'master' into ui
Initial work on project templates
Deleted a temp file
cmake: install templates
Install app icon to share/pixmaps/.
Creating projects based on templates works; Show project creation dialog if valama is called without arguments
Templates: Added cmake structure to Plain Vala template, should be fully functional now
Add threading support for ui elements.

 * Introduce new base class: UiElement
   Other UI classes like ProjectBrowser or SymbolBrowser are now derived from
   this class.
   The base class provides basic dependency support (only threaded not
   sequentially atm).
   Public functionality is given over update() call. The derived classes has to
   implement a custom build() method to update their own interface. The
   update() method then calls all build() methods of all dependencies of all
   dependencies etc.
   So if the interface (reverse) depends on others, register those reverse
   dependencies with connect(UiElement) method.

   Dependency resolution is very basic so be careful to avoid circular
   dependencies.

   To change shared ValamaProject of these elements, call update(ValamaProject)
   with a new project.

   There exists a pool for all toplevel elements (independent elements) but
   this will probably go or change with GDL.

 * Some naming conventions: classes are written the "camel" way:
   ValamaProject, ProjectBrowser, SymbolBrowser

 * New macro is supported: DEBUG
   This is enabled by default and there is atm no cmake option that turns it
   off. This will change later (DEBUG off and an cmake option).
Merge branch 'ui'

Update class names and change some minor whitespaces issues.

Conflicts:
	src/main.vala
Merge branch 'master' into debian