Clean project

This pull request correspond to issue #46, please have a look here before reading. 

# Project classes
* handle all data in the same way (model, startup, lib, data)
* use external service to create Data objects
* improve unit testing
* remove ambiguous attribute name
  * name in sense of project dirname can be get with project.path.name
  * name in sense of project name for user can be get with project.alias or project.metadata['alias']
* define an entry_point to specify project repositories
* big clean to adapt project widgets to project API v2
* delete no more used treeview
* save strings instead of paths in ProjectManager settings
* order metadata and filenames in manifest to avoid file change each time we save manifest
* order metadata in sample projects

# New data service
* MimeType: return mimetype for a given path
* DataFactory: Create a Data object (or specialized object like Model) to embed data given by path
* DataClass: Return best Data class for given data (see DataFactory)

Datatype is now based on mimetypes and can be extended. This allow user to specify which class to use to handle a specific data (instead of always use fallback Data class)

# Model classes
* factorize PythonModel run functions (init, animate, step, ...).
* extract code that adapt inputs from intputs setter to "prepare_inputs" function
* Model, PythonModel, VisualeaModel, RModel and LPyModel now derivate from Data.
* move Data, Model and PythonModel and associated tests to vpltk.
* data and model content in not load at construct but only if required.

# Other improvements
* Add normlink(path): replace symlink by real paths
* Remove project tests with dependency to plantgl or lpy in vpltk
* Add Qt control widget for IStr
* Fix traceback error print

# Related issues
* Fixed issue: #3, #43, #39, #38, #32, #29, #27
* Improved issues: #5, #46, #19, #25