User Management screen

Mark Proctor requested an implementation of User Management within UberFire. This is an initial implementation of the same (not withstanding changes being discussed etc relating to UberFire's security implementation - although implementations of AuthenticationSource and RoleProvider for PicketLink would allow the changes in this PR to be used with PicketLink).

The PR refactors the existing uberfire-security-backend AuthenticationSource's and RoleProvider's so they can declare what User management features they support (add user, delete user, update password, update roles). 

AuthenticationSource's for (1) properties file and (2) Database-centric stores (JDBC/JPA) have been changed to support the CRUD operations. JACC and JAAS implementations do not support CRUD at the moment (implementations would be specific to the container on which the application is deployed).

A simple screen has been provided to allow Administrators to perform User Management functions (dependant upon what AuthenticationSource and RoleProvider has been configured). uberfire-showcase/uberfire-webapp is configured to use the properties file within WEB-INF/classes. 

An init-param for UberFire Security Filter ("usersPropertyFile") would need to be added to point to a location outside of WEB-INF/classes to enable Add user, Delete user, Update password and Update roles (as it is discouraged to permit runtime changes to files within WEB-INF/classes). This is by design.